如何检索类以隐藏按钮?

时间:2009-07-18 03:19:19

标签: jquery css-selectors

鉴于此HTML:

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

这样做的正确方法是什么:

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

我意识到JQuery或Javascript中不存在getClass函数。但我希望有一些方法可以近似它。我有一个更复杂的现实世界问题很难归结为一个简单的问题,但基本上我认为我需要以某种方式访问​​元素的类,然后使用该类字符串执行其他选择,如:

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

也许有更简单的方法可以隐藏我给出的代码中的buttonId2 - 但这并不是真正的重点。我感兴趣的是如何上课,然后进一步使用。到目前为止,我提出的唯一解决方案是使用if / else语句的长分支,使用hasClass函数检查所有可能的类。但这是一个非常不优雅的解决方案。

编辑:回应Paolo的回答,也许这样的事情会隐藏button2:

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

3 个答案:

答案 0 :(得分:2)

我认为,如果你试图解释你的最终目的是什么,我可以真正帮助你以最好的“jQuery方式”实现你的最终结果 - 但是,没有它,我只能说:

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

警告'你好'并且:

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

会提醒'你好世界'

(作为旁注,在您的示例中重做事件函数中的选择器是不好的做法;您只需使用$(this)来表示当前正在执行的元素)

答案 1 :(得分:1)

试试这个:

$("#buttonId1").click(function ()
{
 var classname = $("#buttonId1").attr("class")
 alert(classname);
}

答案 2 :(得分:0)

参考:element.className

$("#buttonId1").click(function ()
{    
    alert(document.getElementById("buttonId1").className);
}