使用返回值的函数的jQuery过滤器不起作用

时间:2013-12-22 12:48:35

标签: javascript jquery function

我想选择带有标签名称元素的标签 考虑

<dt id="term-1">term 1</dt>
<dd>definition 1-a</dd>
<dd>definition 1-b</dd>
<dd>definition 1-c</dd>
<dd>definition 1-d</dd>
<dt id="term-2">term 2</dt>
<dd>definition 2-a</dd>
<dd>definition 2-b</dd>
<dd>definition 2-c</dd>
<dt id="term-3">term 3</dt>
<dd>definition 3-a</dd>
<dd>definition 3-b</dd>

选择没有第一个元素的所有<dd>

$("dd").nextUntil(":not(dd)")

但如果我想选择而不仅限于<dd>,我想使用

$(*).nextUntil(function () {
    return ":not(" + this.tagName + ")";
})

返回的值正是我想要的,即。 :not(DD)。但在这种情况下我无法选择任何东西。为什么呢?

2 个答案:

答案 0 :(得分:0)

那是因为nextUntil函数接受选择器字符串,而不是处理匿名函数。您应该指定一个选择器字符串而不是函数

答案 1 :(得分:0)

$('*:not(first-child)')怎么样?