【发布时间】:2018-06-22 07:39:42
【问题描述】:
我有一个滑块,列表中的项目会因页面而异。
所以,我要做的是运行一个循环,该循环将为每张幻灯片更新 data-slide-to 属性并使用正确的编号。
经过大量的试验和错误,我写了一些几乎有效的东西......
我使用$.each() 获取所有<li> 的索引数组,并使用nth:child 选择器并使用索引选择<li> 然后使用.attr() 更改HTML 属性索引号。
完整代码:
var sliderList = $("ul#list li");
function updateDataNum(){
$.each(sliderList, function( index, value ) {
$( "ul#list li:nth-child" + '(' + index + ')').attr("data-slide-to",index);
});
}
updateDataNum();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="list">
<li data-target="#video-slider" data-slide-to="">One</li>
<li data-target="#video-slider" data-slide-to="">Two</li>
<li data-target="#video-slider" data-slide-to="">Three</li>
<li data-target="#video-slider" data-slide-to="">Four</li>
</ul>
代码如何开始
<ul id="list">
<li data-target="#video-slider" data-slide-to="">One</li>
<li data-target="#video-slider" data-slide-to="">Two</li>
<li data-target="#video-slider" data-slide-to="">Three</li>
<li data-target="#video-slider" data-slide-to="">Four</li>
</ul>
我想要发生的事情
<ul id="list">
<li data-target="#video-slider" data-slide-to="0">One</li>
<li data-target="#video-slider" data-slide-to="1">Two</li>
<li data-target="#video-slider" data-slide-to="2">Three</li>
<li data-target="#video-slider" data-slide-to="3">Four</li>
</ul>
发生了什么实际
<ul id="list">
<li data-target="#video-slider" data-slide-to="1">One</li>
<li data-target="#video-slider" data-slide-to="2">Two</li>
<li data-target="#video-slider" data-slide-to="3">Three</li>
<li data-target="#video-slider" data-slide-to>Four</li>
</ul>
【问题讨论】:
-
你的代码太复杂了。我的回答中给出了一个非常简单的解决方案。你可以检查一下
标签: javascript jquery html each