document.getElementByTag
-
13-12-2019 - |
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;"];
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