Question

J'ai déjà utilisé le document.getElementById, mais il ne fonctionne plus.Je veux obtenir la valeur de 0,01€, mais je ne peux pas.Je veux l'enregistrer dans mon NSString *price mais comment.Le code HTML est

<tr class="price">
<td>0,01</td>
<td>EUR</td>

Mon idée était

NSString *price = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('price.td').innerText;"];
Était-ce utile?

La solution

Le tagName dans ce cas est 'td' a pas de prix.td', mais si vous exécutez document.getElementsByTagName('id') vous obtiendrez toutes les cellules du tableau dans la page, ce qui n'est probablement pas ce que vous voulez.

Si la page a jQuery chargée en lui, vous pouvez utiliser jQuery('.price td:first').text() pour obtenir le prix.

Si elle n'a pas jQuery mais vous avez le contrôle de la page, vous pouvez ajouter une classe à elle (<td class="my-price">12.44</td>) et de l'obtenir avec document.getElementsByClassName('my-price')[0].innerHTML.

Si vous n'avez pas le contrôle de la page et il n'a pas de jQuery, vous aurez à trouver le "prix" de ligne et puis obtenir sa st-1 cellule à l'aide de document.getElementsByClassName('my-price')[0].childNodes[0].innerHTML.

Autres conseils

Aussi, un nettoyant et une approche plus souple est d'utiliser l'API de Sélecteurs:

http://www.w3.org/TR/selectors-api/

document.querySelector('.price td:first').innerText
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top