Javascript 如何在jquery中获取元素的第n个子元素
我的代码如下。它是从滑块脚本创建的Javascript 如何在jquery中获取元素的第n个子元素,javascript,jquery,html-lists,Javascript,Jquery,Html Lists,我的代码如下。它是从滑块脚本创建的 <ul class="slick-dots" style="display: block;"> <li aria-hidden="true"> <div style="width:100%;height:100%;"> <img style="pointer-events:none;" osrc="images/1234.jpg"> </div
<ul class="slick-dots" style="display: block;">
<li aria-hidden="true">
<div style="width:100%;height:100%;">
<img style="pointer-events:none;" osrc="images/1234.jpg">
</div>
</li>
<li aria-hidden="true">
<div style="width:100%;height:100%;">
<img style="pointer-events:none;" osrc="images/234.jpg">
</div>
</li>
<li aria-hidden="true">
<div style="width:100%;height:100%;">
<img style="pointer-events:none;" src="images/456.jpg">
</div>
</li>
<li aria-hidden="false" class="slick-active">
<div style="width:100%;height:100%;">
<img style="pointer-events:none;" src="images/7809.jpg">
</div>
</li>
</ul>
是否有其他解决方案,或者是因为我的代码中有错误。
$('#fire')。单击(函数(){
fireClick(0);//例如,您希望在此处触发第一个li
});
$('li')。单击(函数(){
$(this.css('border','1px纯黑');
})
函数fireClick(元素){
var myTriggerPoint=元素;
$(“ul.slick-dots li”)。每个(功能(i,ele){
如果(i==myTriggerPoint){
$(ele).触发器(“单击”);
}
});
}
-
清单1
-
清单2
-
清单3
-
清单4
fire click
我这里有一些示例,说明如何选择列表项
或者只需单击任何
仅供参考:只需取消对相关行的注释,即可看到示例是否有效
//假事件
$(文档).on('click','ul.slick-dots li',函数(){
$(this.css('background','red');
});
//触发第一个孩子
//$('ul.slick dots')。子项('li')。获取(0)。单击();
//$('ul.slick dots')。children('li:first child')。单击();
//触发第二胎
//$('ul.slick dots')。children('li')。get(1)。click();
//触发最后一个孩子
//$('ul.slick dots')。children('li')。get(3)。click();
//$('ul.slick dots')。children('li:last child')。单击();
//触发所有
//$('ul.slick dots').children('li').each(function(){$(this.click();})
ul{
宽度:50%;
}
李{
高度:30px;
背景:灰色;
利润率:10px;
}
-
asdf
-
asdf
-
asdf
-
asdf
基本上都写在这里:我认为第一和第三应该可以工作,你也可以把第三写成(“.圆点李:第N个孩子(2)”
你的代码应该可以工作,只是我们不知道你在期待什么?!我将此代码添加到fiddle中。第一个和最后一个触发器工作正常。你应该检查一下别的东西。可能是,如果您正在使用插件,您如何检查它是否是触发的最后一个元素?显然你的观察是错误的。但同样,我们不知道它应该做什么,也不知道如何调试它。如果您提供了一个复制您的问题的最低限度示例,那么在您的示例中,它早就被修复了,因为myTriggerPoint=1
它将针对第二个li
,而不是第一个,而且无论如何,使用每个循环都是无用的。OP posted代码更好,因为它也会触发最后一个li元素,而不是指定的元素。当有许多直接的方法通过索引访问元素时,循环所有匹配的元素来测试索引是一种可怕的方法。
$("ul.slick-dots li").eq(1).trigger("click");
$($('ul.slick-dots').children()[2]).trigger("click");
$('.slick-dots > :nth-child(2)').trigger("click");