我正在尝试了解在HTML字符串上调用nextUntil()
或prevUntil()
方法时发生了什么。我已经创建了几个例子来说明我的观点:
$('<div></div><p>').nextUntil().length; // why 1?
$('<div></div><div></div><br><p>').nextUntil().length; // why 5?
$('<div></div><div></div><p></p>').nextUntil().length; // why 2?
$('<div></div><!-- comment -->text<div></div>').nextUntil().length; // why 1?
$('<div></div><!-- comment -->text<div></div>').prevUntil().length; // why 1?
这是jsFiddle。
当有人代替我们在HTML字符串上操作的选择器时,有人可以澄清发生了什么吗?
答案 0 :(得分:2)
在没有参数的情况下调用时,nextUntil
与 next
nextAll
的行为相同。当您将HTML字符串传递给jQuery时,它会将其转换为DOM元素。
$('<div></div><div></div><br><p>')
这将创建一个包含4个元素的jQuery对象。当您在此致电nextUntil
时,会在每个元素上调用它。
第一个元素旁边有3个元素,第二个元素有2个,等等。这就是为什么你得到 6 5。