按类名单击对象

时间:2013-02-16 22:58:45

标签: javascript jquery

我正在尝试document.getElementsByClassName('classname').click();,但它不会触发课程上的点击。那是为什么?

5 个答案:

答案 0 :(得分:5)

  

为什么?

因为getElementsByClassName方法返回DOM元素数组。在数组上调用click方法几乎没有意义。如果要调用此click方法,可以在数组的某个特定元素上执行此操作。例如,如果你想在第一个元素上调用它(假设数组当然不是空的):

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

但是既然你用jQuery标记了你的问题,你可能只想写:

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

答案 1 :(得分: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');});
});

答案 2 :(得分:0)

document.getElementsByClassName('classname')返回一个DOM节点数组。

尝试:

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

另请注意,每个浏览器都不支持getElementsByClassName

答案 3 :(得分:0)

试试这个:

$(function() {
  $('.classname').click();
});

答案 4 :(得分:0)

您的代码可以使用

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

但是,如果你使用jquery那么

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

或只是$('.classname').click();