gpt4 book ai didi

jquery - 我可以通过 for 循环重复 jQuery next() 吗?

转载 作者:行者123 更新时间:2023-12-01 01:22:17 25 4
gpt4 key购买 nike

我想选择一些兄弟元素。所以我使用了 jQuery .next() 但我不知道如何重复。

// Repeat 3 times
$('#after').next().addClass('selected');
$('#after').next().next().addClass('selected');
$('#after').next().next().next().addClass('selected');
.selected {
color: red;
}
<ul>
<li>1</li>
<li>2</li>
<li id="after" data-num="3">3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
<li>10</li>
</ul>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

如何通过 for 循环重复 jQuery next() 作为指定值,就像这样?(当然这是行不通的。)

$('#after')
for(var i=0; i<$('#after').data('num'); i+=1){
.next().addClass('selected')
}
;

最佳答案

而不是 next()使用nextAll()

$('#after').nextAll("li").addClass('selected');

您不需要迭代所有元素。 nextAll()将选择所有 sibling元素一直到 DOM 中的源元素树。

<罢工>如果你想不用循环语句,那么你必须这样做,

var srcElem = $("#after");
var srcIndex = srcElem.index() + 1;
var index = +srcElem.data("num");
secElem.closest("ul")
.find("li:gt("+ (index-1) +"):lt("+ (srcIndex + index) +")")
.addClass('selected');

<罢工>

使用循环将是这里最好的方法,但要以优化的方式使用它,

 var src = $('#after');
for (var i = 0, len = +src.data('num'); i < len; i++) {
src = src.next("li").addClass('selected');
if (!src.length) { break; }
}

DEMO

关于jquery - 我可以通过 for 循环重复 jQuery next() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35815824/

25 4 0
文章推荐: jquery - 移动