しようとdocument.getElementsByClassName('classname').click();
していますが、クラスのクリックが発生しません。何故ですか?
2513 次
5 に答える
5
何故ですか?
getElementsByClassName
メソッドが DOM 要素の配列を返すためです。また、配列に対してクリック メソッドを呼び出すことはほとんど意味がありません。このクリック メソッドを呼び出したい場合は、配列の特定の要素に対して実行できます。たとえば、最初の要素でそれを呼び出したい場合 (もちろん、配列が空ではないと仮定します):
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);
}
JQuery:
$(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 に答える