Как вы получаете класс, чтобы скрыть кнопку? - PullRequest
1 голос
/ 18 июля 2009

Учитывая этот HTML:

<button id="buttonId1" class="hello universe">
<button id="buttonId2" class="hello world">

Как правильно сделать что-то вроде этого:

$("#buttonId1").click(function ()
{    
   alert($("#buttonId1").getClass());
}

Я понимаю, что функция getClass не существует в JQuery или Javascript. Но я надеюсь, что есть какой-то способ приблизиться к этому. У меня есть более сложная проблема реального мира, которую трудно свести к простому вопросу, но в основном я думаю, что мне нужно каким-то образом получить доступ к классу элемента и затем использовать эту строку класса для выполнения дополнительного выбора, такого как:

$(("#buttonId1").getClass().filter("world")).hide();

Возможно, есть более простые способы скрыть buttonId2 в приведенном мною коде, но это не совсем так. Что меня интересует, так это то, как добраться до класса, а затем использовать его дальше. Единственное решение, которое я до сих пор придумал, - это использовать длинную ветвь операторов if / else, проверяющих все возможные классы с помощью функции hasClass. Но это очень не элегантное решение.

РЕДАКТИРОВАТЬ: Отвечая на ответ Паоло, возможно, что-то вроде этого будет работать, чтобы скрыть button2:

$(("#buttonId1").attr('class')[0].filter("world")).hide();

Ответы [ 3 ]

2 голосов
/ 18 июля 2009

Я думаю, что если вы попытаетесь объяснить, какова ваша конечная цель, я смогу реально помочь вам достичь вашего конечного результата наилучшим "способом jQuery" - однако без этого я могу сказать лишь следующее:

$("#buttonId1").click(function() {    
   alert($(this).attr('class'));
});

Оповестит 'привет' и:

$("#buttonId2").click(function() {    
   alert($(this).attr('class'));
});

Оповестит «Привет, мир»

(Как примечание: переделывать селектор внутри функции события, как у вас в вашем примере, является плохой практикой; вы можете просто использовать $(this) для обозначения элемента, над которым в данный момент выполняется действие)

1 голос
/ 18 июля 2009

Попробуйте это:

$("#buttonId1").click(function ()
{
 var classname = $("#buttonId1").attr("class")
 alert(classname);
}
0 голосов
/ 18 июля 2009

Ссылка: element.className

$("#buttonId1").click(function ()
{    
    alert(document.getElementById("buttonId1").className);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...