我正在尝试document.getElementsByClassName('classname').click();
,但它不会触发类的点击。这是为什么?
问问题
2513 次
5 回答
5
这是为什么?
因为该getElementsByClassName
方法返回一个 DOM 元素数组。在数组上调用 click 方法几乎没有意义。如果你想调用这个 click 方法,你可以在数组的某个特定元素上执行此操作。例如,如果您想在第一个元素上调用它(当然假设数组不为空):
document.getElementsByClassName('classname')[0].click();
但既然你已经用 jQuery 标记了你的问题,你可能只想写:
$('.classname').click();
于 2013-02-16T23:00:50.143 回答
0
因为这将返回一组元素,通常是一个HTMLCollection
. 然后你必须遍历它:
https://developer.mozilla.org/en-US/docs/DOM/document.getElementsByClassName
纯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);
}
查询:
$(document).ready(function(){
$('.xxx').on('click',function(){window.alert('Class name is xxx');});
});
于 2013-02-16T23:01:08.163 回答
0
document.getElementsByClassName('classname')
返回一个 DOM 节点数组。
尝试:
var nodes = document.getElementsByClassName('classname');
for(var i = 0; i < nodes.length; i++) {
nodes[i].click();
}
另请记住,getElementsByClassName
并非每个浏览器都支持。
于 2013-02-16T23:01:09.027 回答
0
试试这个:
$(function() {
$('.classname').click();
});
于 2013-02-16T23:01:41.650 回答
0
您的代码将与
document.getElementsByClassName('classname')[0].click();
但是,如果你使用 jquery 那么
$(document).ready( function(){
$('.classname').on('click',function(event){});
});
或者干脆$('.classname').click();
于 2013-02-16T23:01:48.267 回答