JQuery: добавление большего количества элементов к существующему сопоставленному набору с помощью .add () - PullRequest
2 голосов
/ 26 января 2012

Может быть простой ответ на этот вопрос, но я не понимаю, почему следующие два метода использования $ .add () дают мне другой набор результатов.

var toBeSorted;

if (contextEl.hasClass("lv"))
    toBeSorted = $(".lv", contextEl).add(contextEl);
else
    toBeSorted = $(".lv", contextEl);

против

var toBeSorted = $(".lv", contextEl); 

if (contextEl.hasClass("lv"))
    toBeSorted.add(contextEl);

Когда оператор IF равен true, я всегда получаю еще один элемент в верхнем сегменте кода, чем в нижнем сегменте кода (а именно: contextEl в результатеустановить - что именно то, что я хочу).Я не понимаю, почему метод нижнего метода вызова toBeSorted.add (contextEl) не работает?

Любые указатели или советы очень ценятся.

Спасибо!

Ответы [ 2 ]

7 голосов
/ 26 января 2012

Вам нужно записать полученный объект после .add() обратно в toBeSorted, как вы это делаете в первом блоке кода.

toBeSorted = toBeSorted.add(contextEl);
1 голос
/ 26 января 2012

Попробуйте использовать andSelf в этом случае, чтобы добавить предыдущий набор элементов в стеке к текущему набору.

var toBeSorted = contextEl.find(".lv"); 

if (contextEl.hasClass("lv"))
    toBeSorted.andSelf();
...