документ.getElementByTag
-
13-12-2019 - |
Вопрос
Я уже использовал 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
.