jQuery nextUntil陌生

时间:2011-03-09 15:55:40

标签: jquery jquery-selectors

我错过了什么或者这个方法是不是很复杂?我无法正确选择脚本,所以除了jQuery 1.5之外我把所有内容都删除了,并尝试将其作为测试:

HTML:

  <a href="test.php" id="test" class="notActive">test active</a>
  <p><a href="ui.php#content" class="ajax" data-target="loadid">Link 1</a></p>
  <p><a href="widgets.html" class="ajax" data-target="loadid">Link 2</a></p>
  <div id="loadid" class="right bgGreen pad">test;</div>

jQuery的:

var z = $('#test').nextUntil('div');

z.css({'background-color' : '#000000' });

console.log(z.html());

返回:

<a href="test.php" id="test" class="notActive">test active</a>
<p style="background-color: #000000">
<a href="ui.php#content" class="ajax" data-target="loadid">
</p>
<p style="background-color: #000000">
<a href="widgets.html" class="ajax" data-target="loadid">
</p>
<div id="loadid" class="right bgGreen pad">


LOG: <\a href="ui.php#content" class="ajax" data-target="loadid">Link 1</a>

此外,将选择器从“div”更改为“p”会导致null ...任何想法?

3 个答案:

答案 0 :(得分:1)

你错过了什么。来自the jQuery API docs

  

给定一个表示一组DOM元素的jQuery对象,.nextUntil()方法允许我们在DOM树中搜索这些元素的后继,当它到达与方法的参数匹配的元素时停止。返回的新jQuery对象包含以下所有兄弟姐妹,但不包括.nextUntil()选择器匹配的兄弟姐妹。

nextUntil()返回的值包含多个元素,即两个<p>。记录.html()返回的值会产生误导,因为.html() returns only the inner HTML of the first object in the set。只需记录jQuery对象本身,您应该能够看到它内部的内容(至少在Firebug中;我不认为WebKit的调试器可以很好地记录jQuery对象):

console.log(z);

您要选择哪个元素?

答案 1 :(得分:0)

这似乎是正确的。根据{{​​3}},.nextUntil选择所有兄弟姐妹,但不包括参数选择的元素。因此,如果您执行.nextUntil('div'),则选择所有段落(它们是#test元素的兄弟)。如果你这样做.nextUntil('p')没有被选中,因为一个段落在#test之后就会出现。

答案 2 :(得分:-2)

我认为您的.css语法错误。

应该有“,”而不是“:”

z.css('background-color', '#000000' );