Jquery nextUntil()未显示预期值

Jquery nextUntil()未显示预期值,jquery,Jquery,nextUntil()没有给我预期的回报 我想要得到的行为是第一个字段集的ID,该字段集没有隐藏类,即f 但是nextUntil()将返回第一次迭代。有没有办法让nextUntil()返回它的最后一个值,以便下面的代码返回f而不是c alert($('fieldset.active').nextUntil(“fieldset:not(.hide)”).next().attr('id') 米伊 不 不 不 我也是 获取每个元素的所有后续同级,直到,但不包括选择器匹配的元素“ 在您的两个案例中

nextUntil()
没有给我预期的回报

我想要得到的行为是第一个
字段集的
ID
,该字段集没有
隐藏类,即
f

但是
nextUntil()
将返回第一次迭代。有没有办法让
nextUntil()
返回它的最后一个值,以便下面的代码返回
f
而不是
c

alert($('fieldset.active').nextUntil(“fieldset:not(.hide)”).next().attr('id')

米伊
不
不
不
我也是

获取每个元素的所有后续同级,直到,但不包括选择器匹配的元素“

在您的两个案例中:

.nextUntil("fieldset:not(.hide)")
获取所有具有类
hide
的属性,然后在不具有
hide
的属性(最后一个)处停止,并且不包含它-但是attr从集合中的第一个属性获取属性

请尝试
$('fieldset.active').nextUntil(“fieldset:not(.hide)”)。长度
-它不是1

在第二种情况下,使用
.nextUntil(“字段集”)
-这将在第二个字段集(第一个字段集之后)停止,因此
.attr
无法从中获取任何信息,给出未定义的信息,即:

$('fieldset.active').nextUntil("fieldset").length === 0

要获取不是.hide的第一个字段集的id,可以使用
.nextAll().first()
,更新的代码段:

console.log($('fieldset.active').nextAll(“fieldset:not(.hide)”).first().attr('id');
.hide{display:none;}

米伊
不
不
不
我也是

好的,就目前而言,我找到的最好的方法是使用
循环
迭代
next()
,直到到达我想要的目的地

如果只使用
nextUntil()
(或任何遍历类型)提供答案,而不需要
loop
来获得最后一次迭代,我将接受这一点。同时,这是对该问题的最佳答案

var move=$('fieldset.active').nextUntil(“fieldset:not(.hide)”).length;
for(设i=0;i++){
如果(i>移动){
警报($('fieldset.active').attr('id'));
打破
}否则{
$('fieldset.active').removeClass('active').next().addClass('active');
}
}

米伊
不
不
不
我也是

Ok那么我如何返回集合的最后一个而不是第一个呢?为什么在
nextInstall()时必须使用
nextUntil()
是否存在并设计为完全满足您的需求?@freedomn-n如果您认为nextAll可以实现所需的结果,请提供答案。我很高兴使用任何遍历类型,如果它有效的话。如果它可以简化代码,那么它是一个比循环更好的答案。我想您昨天在我的答案中没有看到更新包括一个工作片段?抱歉,我应该说得更清楚有更新。@freedomn-m让我把它仔细检查一下。我肯定它以前有过不合理的行为。我会给你回电的。不过明天会有问题吗。