Jquery перебирает все отмеченные поля и удаляет класс - PullRequest
6 голосов
/ 22 июля 2009

В настоящее время я использую jQuery и хотел бы получить некоторую помощь по перебору всех проверенных флажков и удалению класса (называемого "new_message") строки родительской таблицы.

У меня есть базовая концепция, но я не могу полностью понять все это.

Вот что я сейчас использую:

$("#unread_button").click(function (event) {
event.preventDefault;
$(":checkbox:checked").each( 
function() 
{ 
    if (this.checked) 
    { 
        var divs = $.makeArray($(this).parents("tr").attr("id"));
     }
$(divs).each(
    function(int)
        {
            $(this).removeClass("new_message");
        }
    );
  });  
});

В конце концов, это также приведет к обновлению базы данных, так что, если код может быть адаптирован под оба варианта, это было бы здорово.

Любое руководство очень ценится!

Ответы [ 2 ]

6 голосов
/ 22 июля 2009

Я думаю, что это будет работать:

$('input:checkbox:checked').parents('tr').removeClass('new_message');

Или, если вы хотите сопоставить только прямого родителя TR, то это:

$('input:checkbox:checked').closest('tr').removeClass('new_message');

jQuery выполняет все циклы за вас, поэтому вы должны иметь все каждое ().

После того, как вы используете селектор «: флажок», вам придется перепроверить, если пункт отмечен. Это должно ограничить результаты выбора только проверенными элементами.

4 голосов
/ 22 июля 2009
$("input:checked").each(function() {
    $(this).removeClass("new_message");
}

удалит соответствующий класс из самих флажков, поэтому

$(this).parent....

должно работать в зависимости от того, как выглядит ваш HTML

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...