Удалить элемент HTML, который не содержит определенный класс - PullRequest
2 голосов
/ 11 сентября 2011

Я пытаюсь удалить li с неактивным состоянием, но не могу заставить его работать:

var html = $("#myjqgriddiv").remove("ul li:not(.ui-state-active)").html();

У меня есть HTML, и я хочу удалить li, который не содержит класса .ui-state-active

После кода выше li с .ui-state-active все еще там.

Нужна помощь.

ОБНОВЛЕНИЕ:

Мое намерение в этом html я собираюсь напечатать, используяwindow.open("","Print")/document.write

@ tvanfosson ответ работает, но есть еще одна маленькая вещь, единственный li, который остался после первой модификации, я хочу также отредактировать, я хочу удалить атрибут "href" из его a потомка

var html = $('#myjqgriddiv') // select div
                .find('ul li:not(.ui-state-active)') // select elements to remove from div
                .remove()  // remove the matched elements
                .end() // revert back to the originally selected elements
                .html(); // and get the HTML


html = $(html).find("ul li.ui-state-active a)").removeAttr("href").html(); // not working?!

Ответы [ 2 ]

3 голосов
/ 11 сентября 2011

Аргумент для удаления действует как фильтр, а не как селектор.Поскольку вы выбрали только один элемент с идентификатором mygqgriddiv, фильтр ничего не удаляет.Попробуй.

 var html = $('#myjqgriddiv') // select div
                .find('ul li:not(.ui-state-active)') // select elements to remove from div
                .remove()  // remove the matched elements
                .end() // revert back to the originally selected elements
                .find("ul li.ui-state-active a)") // now get the active ones
                .removeAttr("href") // remove the href attribute
                .end() // back to the original selection
                .html(); // and get the HTML
0 голосов
/ 11 сентября 2011

jQuery's remove удалит только элементы из выбранного списка. Поместите два селектора в функцию $ и удалите результат.

var html = $("#myjqgriddiv ul li:not(.ui-state-active)").remove().html();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...