Сравнение классов элементов для выполнения функции (переменная переменная?) - PullRequest
0 голосов
/ 23 июня 2011

В Jquery я хочу сравнить классы h3 и div.Тем не менее, у меня их много, и я не могу выполнить и переключить регистр, потому что в будущем может быть добавлено больше.Вот пример:

<h3 class="one">One</h3>
<h3 class="two">Two</h3>
<h3 class="three">Three</h3>
<div class="one">One</div>
<div class="two">Two</div>
<div class="three">Three</div>

При нажатии на h3, div переключит показ / скрытие.Однако, как я уже сказал, таких много.Есть ли способ сказать в Jquery, что

if h3[class] = div[class] {
       //do something
}

без необходимости указывать каждый случай сравнения классов?Может быть, переменная или что-то?

1 Ответ

0 голосов
/ 23 июня 2011

Учитывая, h3 и div являются узлами DOM и имеют только один класс каждый

if (h3.className === div.className) {
    /* runs if both h3 and div have the same class attribute value.
}

Для нескольких классов я рекомендую использовать ES5 и список классов

if (Array.prototype.every.call(h3.classList, function(v) {
        return div.classList.contains(v);
    })
) {
    /* runs if both h3 and div share the same classes */
}

.classList, Array.prototype.every, ES5-шим

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