我错过了什么或者这个方法是不是很复杂?我无法正确选择脚本,所以除了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 ...任何想法?
答案 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' );