$target.after($tq.clone());
var $newElement = $target.next();
$newElement.prevUntil('.question.edit:eq(' + tqIndex + ')')
.each(function () {
var $elm = $(this).find('input.position');
var val = parseInt($elm.attr('value')); $elm.attr('value', (val - 1));
$tq.detach();
我使用它移动一些元素并更新字段显示一个整数及其位置。如果我克隆$tq
,我会说$('.question.edit:eq(3)')
并在$('.question.edit:eq(6)')
之后插入html,然后我想从新插入的$tq
克隆中的每个元素位置字段中减去1 ,$('.question.edit:eq(7)')
以及$tq
,$('.question.edit:eq(3)')
更新位置/计数。然后分离$tq
并且计数正确。
我看到的是prevUntil()
和nextUntil()
不会停留在('.question.edit:eq('+ tqIndex + ')')
并且会影响低于指定索引计数的元素,实际上所有元素都会直到父级
也许我只是没有正确传递tqIndex
值,但似乎没问题。
答案 0 :(得分:2)
:eq()匹配集合中指定索引的元素。它不适用于prevUntil()
和nextUntil()
,它们将选择器应用于各个元素。
请尝试使用:nth-child():
$newElement.prevUntil(".question.edit:nth-child(" + (tqIndex + 1) + ")")
请注意,:nth-child()
是基于一的,而:eq()
是从零开始的,因此您必须将1
添加到tqIndex
以获取相应的索引。