Вопрос

Я уже использовал document.getElementById, но он больше не работает.Я хочу получить значение 0,01€, но не могу.Я хочу сохранить это в своем NSString *price но как.HTML-код

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

Моя идея была

NSString *price = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('price.td').innerText;"];
Это было полезно?

Решение

Имя тега в данном случае — «td», а не «price.td», но если вы запустите document.getElementsByTagName('id') вы получите все ячейки таблицы на странице, что, вероятно, не то, что вам нужно.

Если на странице загружен jQuery, вы можете использовать jQuery('.price td:first').text() чтобы узнать цену.

Если у него нет jQuery, но вы контролируете страницу, вы можете добавить к ней класс (<td class="my-price">12.44</td>) и получить его с помощью document.getElementsByClassName('my-price')[0].innerHTML.

Если у вас нет контроля над страницей и на ней нет jQuery, вам придется найти строку «цена», а затем получить ее 1-ю ячейку, используя document.getElementsByClassName('my-price')[0].childNodes[0].innerHTML.

Другие советы

Также, более чистый и более гибкий подход - использовать селекторы API:

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

document.querySelector('.price td:first').innerText
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top