Класс изменения JQuery по заданному идентификатору

У меня есть несколько таблиц, например:

<table class="onion" id="12">

Когда щелкнул div с именем "Mark_Pre_Val", мне нужны таблицы с идентификаторами 4, 6, 12 и 21 изменить свой класс на "onionClick", и если один из них уже "onionClick", тогда не измените класс.

Вот событие click:

    $(".Mark_Pre_Val").click(function(){       });

Может ли кто-нибудь указать мне в правильном направлении, как это сделать?

Ответ 1

$(".Mark_Pre_Val").click(function(){ 
  $('#4, #6, #12, #21').removeClass('onion').addClass('onionClick');
});

Изменить: как указывали другие, идентификатор элемента не должен содержать только числа. Если вы выводите эти таблицы в цикле и используете идентификатор в качестве итератора, вы можете найти более элегантным использование index().

Ответ 2

Не помещайте идентификатор, начинающийся с номера, пожалуйста.


$(".Mark_Pre_Val").click(function(){
    $("#4, #6, #12, #21").removeClass("onion").addClass("onionClick");
});

Ответ 3

$("#Mark_Pre_Val").click(function(){

    $("#4,#6,#12,#21")
        .not("onionClick")
        .removeClass("onion")
        .addClass("onionClick");

});

EDIT:

Ни один из вышеперечисленных ответов не будет работать, поскольку событие click никогда не будет запущено, если вы выберете класс .Mark_Pre_Val. Вы сказали, что ваш div был назван Mark_Pre_Val, поэтому вам нужно использовать # при выборе. Также... почему бы не использовать not() для немедленного фильтрации тех, у кого нет класса, который вы хотите изменить, затем удалить старый класс и, наконец, добавить новый класс?

Ответ 4

$('# 4, # 6, # 12, # 21'). toggleClass ('onionClick');