Javascript 如何单步执行兄弟元素
我试图一步一步地通过6个Div,给每个Div一个唯一的ID。我确信下面的代码可以工作,但它所做的只是给第一个Div“slide1”,其余的都得到“slide6”。完成这一步的正确方法是什么Javascript 如何单步执行兄弟元素,javascript,jquery,css,iteration,step-through,Javascript,Jquery,Css,Iteration,Step Through,我试图一步一步地通过6个Div,给每个Div一个唯一的ID。我确信下面的代码可以工作,但它所做的只是给第一个Div“slide1”,其余的都得到“slide6”。完成这一步的正确方法是什么 $('#main-slider div.et_pb_slide').first().attr('id','slide1'); $('#main-slider div.et_pb_slide').next().attr('id','slide2'); $('#main-slider
$('#main-slider div.et_pb_slide').first().attr('id','slide1');
$('#main-slider div.et_pb_slide').next().attr('id','slide2');
$('#main-slider div.et_pb_slide').next().attr('id','slide3');
$('#main-slider div.et_pb_slide').next().attr('id','slide4');
$('#main-slider div.et_pb_slide').next().attr('id','slide5');
$('#main-slider div.et_pb_slide').next().attr('id','slide6');
循环
循环
你应该这样做:
$('#main-slider div.et_pb_slide').each(function(value, index) {
$(this).attr('id','slide'+index);
});
你应该这样做:
$('#main-slider div.et_pb_slide').each(function(value, index) {
$(this).attr('id','slide'+index);
});
如果这里的其他答案不符合要求,您应该将jQuery调用链接在一起-出于性能原因和DOM选择器的准确性:
$('#main-slider div.et_pb_slide')
.first().attr('id','slide1')
.next().attr('id','slide2')
.next().attr('id','slide3')
.next().attr('id','slide4')
.next().attr('id','slide5')
.next().attr('id','slide6');
如果这里的其他答案不符合要求,您应该将jQuery调用链接在一起-出于性能原因和DOM选择器的准确性:
$('#main-slider div.et_pb_slide')
.first().attr('id','slide1')
.next().attr('id','slide2')
.next().attr('id','slide3')
.next().attr('id','slide4')
.next().attr('id','slide5')
.next().attr('id','slide6');
1.)使用选择器获取所有div
2.)通过附加每个div索引应用唯一id
var $divs = $("#main-slider div.et_pb_slide");
$divs.attr('id', function (index) {
return 'slide' + index;
});
1.)使用选择器获取所有div
2.)通过附加每个div索引应用唯一id
var $divs = $("#main-slider div.et_pb_slide");
$divs.attr('id', function (index) {
return 'slide' + index;
});
那么索引是来自“each”函数吗?索引来自DOM元素(幕后)。jQuery使用它们来区分彼此。它是一个从零开始的索引,与数组中的数字索引类似。添加一个可确保获得一个“基于1”的起点。那么索引是否来自“each”函数?该索引来自DOM元素(幕后)。jQuery使用它们来区分彼此。它是一个从零开始的索引,与数组中的数字索引类似。添加一个可以确保您获得一个“基于1”的起点。这最终是我自己想要做的。显然,循环是更好的解决方案,但这说明了我是如何滥用.next()函数的。谢谢。这绝对是一个例子,说明你的尝试应该如何解决。一定要使用循环,否则jQuery代码会随着您拥有的选项数量而扩展,这对任何人都没有好处。显然,循环是更好的解决方案,但这说明了我是如何滥用.next()函数的。谢谢。这绝对是一个例子,说明你的尝试应该如何解决。一定要使用循环,否则jQuery代码会随着您拥有的选项数量而扩展,这对任何人都没有好处。