2012-07-28 1 views
0

J'ai déjà utilisé document.getElementById, mais cela 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 estdocument.getElementByTag

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

Mon idée était

NSString *price = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('price.td').innerText;"]; 
+0

l'étiquette est censé être TR et votre seule chance d'obtenir un tel résultat en javascript est énumérer tous ceux qui recherchent l'attribut class == 'price' ou utiliser une expression JQuery avancée pour sélectionner un nœud particulier correspondant aux critères. Mon expérience me dit que vous pourriez avoir plus de chance si vous démarrez à partir de la table. Votre question n'est pas assez détaillée pour vraiment vous aider et je suis sûr que vous abordez le problème de manière incorrecte –

Répondre

0

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

Si la page contient jQuery, vous pouvez utiliser jQuery('.price td:first').text() pour obtenir le prix.

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

Si vous n'avez pas le contrôle de la page et qu'il n'y a pas jQuery, vous devrez trouver la ligne 'price' et ensuite obtenir sa 1ère cellule en utilisant document.getElementsByClassName('my-price')[0].childNodes[0].innerHTML.

+0

merci pour votre aide. Tu m'as montré le bon chemin. Maintenant, je l'ai fait comme ceci: NSString * price = [captcha stringByEvaluatingJavaScriptFromString: @ "document.getElementsByClassName ('prix') [0] .innerText;"]; –

+0

Je ne suis même pas sûr de ce que cela ferait. Je suppose qu'il va retourner le texte dans toutes les cellules. – Vatev