Фильтр jQuery с использованием функций, возвращающих значение, не работает

0

Я хочу выбрать теги с элементами своего имени тега вокруг

<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). Но я не могу ничего выбрать в этом случае. Зачем?

  • 0
    nextUntil принимает функцию фильтра для проверенных элементов, а не функцию, которая возвращает селектор.
Теги:
function

2 ответа

0

Это потому, что функция nextUntil принимает строку селектора, а не обработку анонимной функции. Вы должны указать селекторную строку вместо функции

  • 0
    Но я не знаю имени. Я хочу сделать дикий выбор.
  • 0
    Теоретически анонимная функция возвращает правильную строку. Почему nextUntil не принимает его?
Показать ещё 3 комментария
0

Как насчет $('*:not(first-child)')?

  • 0
    Protip: * селектор (и :not() без селектора класса / идентификатора / элемента) крайне неэффективен.
  • 0
    это не исключает первый элемент кластера тегов
Показать ещё 9 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню