我有一些图像,我使用jQuery将每个图像包装在<li>
中。然后我想通过索引选择其中一个列表元素。
HTML
<div id="slider">
<img src="..." alt="" />
<img src="..." alt="" />
<img src="..." alt="" />
</div>
的jQuery
$('#slider').children().wrap('<li />');
$('#slider').wrapInner('<ul class="sliderUl" />');
var sliderLi = $('#slider').find('li');
$(sliderLi + ':eq(2)').addClass('test');
这不起作用,因为列表元素是动态创建的,所以尽管变量似乎已创建且工作正常,但它不能与'eq'一起使用。任何想法我还能做什么?
我必须使用列表元素作为变量。
答案 0 :(得分:1)
您尝试使用eq()
,如:eq
sliderLi是对象而非选择器。
更改
$(sliderLi + 'eq(2)').addClass('test');
到的
$(sliderLi).eq(2).addClass('test');
或,使用:eq
$('#slider').find('li:eq(2)').addClass('test');
答案 1 :(得分:1)
试试这个:
$(sliderLi).eq(2).addClass('test');
您可以将:eq()
伪用于字符串选择器,但sliderLi
是jQuery对象,而不是字符串。
或者,你可以这样做:
var sliderLi = $('#slider').find('li:eq(2)');
或
var sliderLi = $('#slider li:eq(2)');
答案 2 :(得分:0)
$('#slider').find('li:eq(2)').addClass('test');
正如注释一样,请考虑eq
索引为零
答案 3 :(得分:0)
$('#slider li:eq(2)').addClass('test');
答案 4 :(得分:0)
您可以使用:
$(function(){
$('#slider').children().each(function(){
$(this).wrap('<li />');
});
$('#slider').wrapInner('<ul class="sliderUl" />');
$(".sliderUl").children("li:eq(2)").addClass("test");
});