我正在尝试document.getElementsByClassName('classname').click();
,但它不会触发课程上的点击。那是为什么?
答案 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();