#javascript #jquery
#javascript #jquery
Вопрос:
<div id='id'>
<ul id='ul'>
<li id='1' class="">a</li>
<li id='2' class="">a</li>
<li id='3' class="">a</li>
<li id='4' class="select">a</li>
<li id='5' class="">a</li>
</ul>
</div>
Как мне узнать, есть ли у какого-либо из <li>
элементов select
класс? Если найден, как мне удалить этот класс?
Ответ №1:
Следующее удалит select
класс из всех <li>
элементов, в которых он есть:
$('li.select').each(function() { $(this).removeClass('select'); });
Комментарии:
1. вырвал слова из моих рук
2. Если у меня есть тег привязки вместо li, то $(‘a.select’).each(function() { $(this).removeClass(‘select’); }); должен работать?
3. Кстати, жакилин, я заметил, что это твой первый вопрос здесь, обязательно поставь галочку рядом с ответом, который наилучшим образом отвечает на твой вопрос, чтобы принять его.
Ответ №2:
Чтобы определить, выбран ли какой-либо li, используйте
$('#ul > .select');
и используйте removeClass для удаления select
.removeClass('select');
Ответ №3:
используйте
removeClass
$('#ul li').removeClass("select");
чтобы найти этот класс, существует?
используйте
hasClass
Ответ №4:
Я бы сделал это следующим образом:
$("#ul > li").filter(function(index) { return $(this).hasClass("select"); }).removeClass("select");
Редактировать:
Интересный тестовый пример для jsperf, показывающий, что действительно, filter — самый медленный метод, в то время как метод selector — самый быстрый.
Комментарии:
1. я бы подумал, что в этом слишком много соуса / горчицы, хотя, ИМХО
2. Я полагаю, вы правы. Сработал бы простой
$("#ul > .select").removeClass("select")
способ. Но это забавнее писать! 😉 Хотя определенно не так эффективно. 🙂3. хотя это выглядит более «хардкорно». просто не фанат, так как я использую jquery для простоты 🙂 приятно видеть другие реализации, хотя они довольно уникальны, чем 3 других ответа, ха-ха
4. @Andrew конечно, я поддержал ваш ответ, поскольку он самый чистый и простой IMO. 🙂
5. Спасибо
:)
. Кроме того, это не значит, что хардкор — это не весело, как вы говорите, потому что именно так человек учится! Однако на практике выигрывает lex parsimoniae .