web-dev-qa-db-ja.com

jQueryのインデックスで要素を取得する

順序付けられていないリストと、そのリストにliタグのインデックスがあります。そのインデックスを使用してli要素を取得し、背景色を変更する必要があります。リスト全体をループせずにこれは可能ですか?つまり、この機能を実現できる方法はありますか?

ここに私のコードがあり、私はそれがうまくいくと信じています...

<script type="text/javascript">
  var index = 3;
</script>

<ul>
    <li>India</li>
    <li>Indonesia</li>
    <li>China</li>
    <li>United States</li>
    <li>United Kingdom</li>
</ul>

<script type="text/javascript">
  // I want to change bgColor of selected li element
  $('ul li')[index].css({'background-color':'#343434'});

  // Or, I have seen a function in jQuery doc, which gives nothing to me
  $('ul li').get(index).css({'background-color':'#343434'});
</script>
104
Rama Rao M
$(...)[index]      // gives you the DOM element at index
$(...).get(index)  // gives you the DOM element at index
$(...).eq(index)   // gives you the jQuery object of element at index

DOMオブジェクトにはcss関数がありません。最後の...

$('ul li').eq(index).css({'background-color':'#343434'});

docs:

.get(index)戻り値:要素

.eq(index)戻り値:jQuery

  • 説明:一致した要素のセットを指定されたインデックスの要素に減らします。
  • 参照: https://api.jquery.com/eq/
234
gdoron

JQueryの .eq() メソッドを使用して、特定のインデックスを持つ要素を取得できます。

$('ul li').eq(index).css({'background-color':'#343434'});
17

eqメソッドまたはセレクター を使用できます。

$('ul').find('li').eq(index).css({'background-color':'#343434'});
10
Darius M.

CSS :nth-of-type pseudo-classを使用してjQueryのインデックスで要素を取得する別の方法があります。

<script>
    // css selector that describes what you need:
    // ul li:nth-of-type(3)
    var selector = 'ul li:nth-of-type(' + index + ')';
    $(selector).css({'background-color':'#343434'});
</script>

他にも selectors があり、jQueryで使用して必要な要素と一致させることができます。

0
Yury Fedorov