在HTML字符串上调用nextUntil()或prevUntil()时会发生什么?

时间:2013-12-13 19:50:52

标签: jquery

我正在尝试了解在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字符串上操作的选择器时,有人可以澄清发生了什么吗?

1 个答案:

答案 0 :(得分:2)

在没有参数的情况下调用时,nextUntil next nextAll的行为相同。当您将HTML字符串传递给jQuery时,它会将其转换为DOM元素。

$('<div></div><div></div><br><p>')

这将创建一个包含4个元素的jQuery对象。当您在此致电nextUntil时,会在每个元素上调用它。

第一个元素旁边有3个元素,第二个元素有2个,等等。这就是为什么你得到 6 5。