2013-02-16 3 views

ответ

4

Почему это?

Поскольку метод getElementsByClassName возвращает массив элементов DOM. И вызов метода щелчка на массиве вряд ли имеет смысл. Если вы хотите вызвать этот метод щелчка, вы можете сделать это на определенном элементе массива. Например, если вы хотели назвать его на первый элемент (предполагая, что массив не пуст, конечно):

document.getElementsByClassName('classname')[0].click(); 

Но так как вы отметили свой вопрос с JQuery вы, вероятно, просто хотел написать:

$('.classname').click(); 
0

Потому что это вернет набор элементов, который обычно равен HTMLCollection. Вы должны затем итерацию через него:

https://developer.mozilla.org/en-US/docs/DOM/document.getElementsByClassName

Pure Javascript:

var elements = document.getElementsByClassName('xxx'); 

for(var i = 0; i < elements.length; i++) 
{ 
    elements[i].addEventListener('click',function(){window.alert('Class name is xxx');},false); 
} 

JQuery:

$(document).ready(function(){ 
    $('.xxx').on('click',function(){window.alert('Class name is xxx');}); 
}); 
0

document.getElementsByClassName('classname') возвращает массив узлов DOM.

Try:

var nodes = document.getElementsByClassName('classname'); 
for(var i = 0; i < nodes.length; i++) { 
    nodes[i].click(); 
} 

помнить также, что getElementsByClassName не поддерживается каждым браузером.

0

Ваш код будет работать с

document.getElementsByClassName('classname')[0].click(); 

Но, если вы используете JQuery, то

$(document).ready(function(){ 
     $('.classname').on('click',function(event){}); 
    }); 

или просто $('.classname').click();

+0

'$ (» .classname '). на (' нажмите», функция (событие) { }); 'связывает обработчик событий. Это не эквивалентно '$ ('. Classname'). Click();'. –

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