$("セレクタ")[0].click()の[0]の意味を教えてください
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答3件
0
ベストアンサー
jQueryのセレクタは複数のオブジェクトを拾おうとします。
[0]はその0番目の要素をDOMとしてつかんでいます
考え方としてはこういうことです
仕様:
DIVをクリックすると赤くなる仕組みで、「A」をクリックすると「B~E」もクリックされる
javascript
1$(function(){ 2 $('div').on('click',function(){ 3 $(this).css("background-Color","red"); 4 }); 5 $('#aaa').on('click',function(){ 6 $('#bbb').trigger('click'); 7 $('#ccc').eq(0).trigger('click'); 8 $('#ddd')[0].click(); 9 $('#eee').get(0).click(); 10 }); 11});
HTML
1<div id="aaa">A</div> 2<div id="bbb">B</div> 3<div id="ccc">C</div> 4<div id="ddd">D</div> 5<div id="eee">E</div>
投稿2018/01/25 05:12
編集2018/01/25 05:13総合スコア117615
0
jQuery で得られているのは、jQuery で扱える操作用のオブジェクトであって実際のノードではありません。 $('.foo').on('click', ...)
や $('.foo').css(...)
等が呼べるので、ノードに直結したオブジェクトの様に見えますが、実際は複数のノードを束ねた操作用のオブジェクトです。ノードに生えている addEventListener 等、raw オブジェクトのメソッドを呼び出すには、[0]
の様に添え字アクセスを使います。
jQuery にも click イベントを発火させる $('.foo').click()
がありますが、実際は .foo
のセレクタでマッチする全てのノードの click イベントが発火します。
また jQuery の click と raw オブジェクトの click は動作が異なります。例えば
html
1<!DOCTYPE html> 2<html> 3<head> 4<script type="text/javascript" src="https://code.jquery.com/jquery-latest.js"></script> 5<script type="text/javascript"> 6$(function() { 7 $('#foo').click(); 8}); 9</script> 10</head> 11<body> 12 <a id="foo" href="http://www.google.com">google</a> 13</body> 14</html>
この HTML では Google に画面遷移しません。これを正しく動かすには
javascript
1$('#foo')[0].click();
と呼び出す必要があります。
投稿2018/01/25 06:09
総合スコア5030
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。