Document.getelementsBytagname.
-
13-12-2019 - |
Domanda
Ho già usato Document.getelementByID, ma non funziona più.Voglio ottenere il valore di 0,01 € ma non posso.Voglio salvarlo nel mio NSString *price
ma come.
Il codice HTML è
<tr class="price">
<td>0,01</td>
<td>EUR</td>
.
La mia idea era
NSString *price = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('price.td').innerText;"];
. Soluzione
Il tagname in questo caso è 'TD' NON 'PREZZO.TD', ma se si esegue document.getElementsByTagName('id')
otterrai tutte le celle da tavolo nella pagina che probabilmente non è quello che vuoi.
Se la pagina ha jquery caricato in esso è possibile utilizzare jQuery('.price td:first').text()
per ottenere il prezzo.
Se non ha jquery ma hai il controllo della pagina è possibile aggiungere una classe ad esso (<td class="my-price">12.44</td>
) e prenderlo con document.getElementsByClassName('my-price')[0].innerHTML
.
Se non hai il controllo della pagina e non ha jQuery, dovrai trovare la riga del "prezzo" e quindi ottenere la sua cella da 1 st usando document.getElementsByClassName('my-price')[0].childNodes[0].innerHTML
.
Altri suggerimenti
Inoltre, un approccio più pulito e flessibile è quello di utilizzare gli API dei selettori:
http://www.w3.org/tr/selectors-api/
document.querySelector('.price td:first').innerText
.