2014-02-14 3 views
0

Я создаю скрипт в tampermonkey, который автоматически нажимает на элемент. элемент я пытаюсь нажать сделан, как это, когда я проверить его в хроме:document.getElementsByName не работает для меня?

<span id="result_5_name" class="market_listing_item_name" style="color: #FFD700;">Item | Anodized Navy</span> 

¨

Сценарий я попытался сделать выглядит следующим образом:

function detectandclick { 
    var item = document.getElementsByName('Item | Anodized Navy'); 

    item[0].click(); 
} 

Я новый для программирования, поэтому, возможно, что-то действительно не так.

PS: Я не хочу использовать getElementsById или класс, мне нужно получить элемент по его имени, отображаемому на веб-странице.

Спасибо за помощь!

+1

Вы не имеете 'name' атрибут, так как' document.getElementsByName' не работает? – Satpal

+0

Это не его имя ... это текстовое содержимое или html-контент. –

+0

См. [GetElementsByName] (https://developer.mozilla.org/en-US/docs/Web/API/document.getElementsByName) для использования – Xotic750

ответ

1

Изменить ваш HTML к этому:

<span id="result_5_name" name="result_5_name" class="market_listing_item_name" style="color: #FFD700;">Item | Anodized Navy</span> 

Теперь ниже фрагмент кода будет работать:

function detectandclick { 
    var item = document.getElementsByName('result_5_name'); 

    item[0].click(); 
} 
+0

Спасибо за ваш вклад! Моя проблема в том, что я не знаю, как изменить HTML. Я имею в виду, это веб-страница, которой я не владею, поэтому я не могу просто изменить ее, не так ли? Также мне нужно сделать это для большого количества предметов, поэтому, даже если бы я мог его изменить, я не могу изменить его для всего элемента, это было бы слишком много, и некоторые из них я даже не могу получить. Я могу ссылаться только на их текстовое содержимое:/Спасибо, в любом случае! – bram

+0

В этом случае просто любопытно, почему вы не хотели бы использовать 'getElementById', поскольку элемент не имеет атрибута 'name', установленного в соответствии с вашей проверкой в ​​Chrome? – Horizon

0

getElementsByName() возвращает элементы массива согласованного пункта, так что вы можете использовать индекс для доступа к конкретный элемент массива. Как

function detectandclick { 
    var item = document.getElementsByName('somename')[0].click(); 
} 

<span id="result_5_name" name="somename" class="market_listing_item_name" style="color: #FFD700;">Item | Anodized Navy</span> 

Более подробную информацию о getElementsByName()

Смежные вопросы