1

しようとdocument.getElementsByClassName('classname').click();していますが、クラスのクリックが発生しません。何故ですか?

4

5 に答える 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 に答える