3番目または4番目の要素を取得し、そのIDを設定したいと思います。
見つけた:
$('#menu li:first').attr('id', 'test')
実際には機能していますが、最初の要素しか取得できません。一方、以下を使おうとしましたが、動作しません。
$('#menu li').get(0).attr('id', 'test')
誰かが望ましい要素を取得する方法を説明できますか?(例:4または5)そしてそのIDを設定し、なぜ2番目のコードが機能しないのですか?
3番目または4番目の要素を取得し、そのIDを設定したいと思います。
見つけた:
$('#menu li:first').attr('id', 'test')
実際には機能していますが、最初の要素しか取得できません。一方、以下を使おうとしましたが、動作しません。
$('#menu li').get(0).attr('id', 'test')
誰かが望ましい要素を取得する方法を説明できますか?(例:4または5)そしてそのIDを設定し、なぜ2番目のコードが機能しないのですか?
eq()
次の方法を使用できます。
$('#menu li').eq(2).attr('id', 'third') // selects third element
$('#menu li').eq(3).attr('id', 'fourth') // selects fourth element
関数を使ってみてください.eq
。
$('#menu li').eq(4).attr(...)
また
$('#menu li:eq(4)').attr(...)
補足.get(0)
として、jQueryオブジェクトではなくDOM要素を返します。
コメントで述べたように、get()はDOM要素を返します。
jqueryのを使用せずに要素のIDを設定することが可能attr()
です。
$('#menu li').get(3).id = 'test';
$('#menu li:eq(3)').attr('id', 'id_4');
$('#menu li:eq(4)').attr('id', 'id_5');
また
$('#menu li').eq(3).attr('id', 'id_4');
$('#menu li').eq(4).attr('id', 'id_5');
eq()
または:eq()
両方がターゲット要素のパラメータインデックスを取り、それは常に
targetElementIndex - 1
。ゼロベースだからです。
したがって、4番目または5番目の要素をターゲットにする場合は、引数を3および4として指定する必要があります。
$('#menu')
IDが「menu」の要素を選択します。
$('#menu li')
また
$('#menu').find('li')
すべての<li>
子孫を選択し、
$('#menu li').eq(3)
4番目を選択します(ゼロからラベル付けされているため)。
また、
$('#menu li')[3]
jQueryラッパーではなく、HTMLElement自体を取得します。