Получить элемент по индексу в jquery
У меня есть неупорядоченный список и индекс тега li
в этом списке. Я должен получить элемент li
, используя этот индекс и изменив его цвет фона. Возможно ли это, если вы не зациклируете весь список? Я имею в виду, есть ли какой-либо метод, который мог бы достичь этой функциональности?
Вот мой код, который, я считаю, будет работать...
<script>
var index = 3;
</script>
<ul>
<li>India</li>
<li>Indonesia</li>
<li>China</li>
<li>United States</li>
<li>United Kingdom</li>
</ul>
<script>
//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>
Ответы
Ответ 1
$(...)[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'});
документы:
.get(index)
Возвраты: Элемент
.eq(index)
Возвращает: jQuery
Ответ 2
Вы можете использовать метод jQuery .eq()
, чтобы получить элемент с определенным индексом.
$('ul li').eq(index).css({'background-color':'#343434'});
Ответ 3
Вы можете использовать метод eq или селектор:
$('ul').find('li').eq(index).css({'background-color':'#343434'});
Ответ 4
Существует еще один способ получить элемент по индексу в jQuery, используя CSS :nth-of-type
псевдокласс:
<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 для соответствия любому элементу, который вам нужен.
Ответ 5
Вы можете пропустить jquery и просто использовать теги стиля CSS:
<ul>
<li>India</li>
<li>Indonesia</li>
<li style="background-color:#343434;">China</li>
<li>United States</li>
<li>United Kingdom</li>
</ul>