2009-07-18 28 views
1

鑑於這種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語句的long分支來檢查使用hasClass函數的所有可能的類。但這是一個非常不雅的解決方案。

編輯:應對保羅的回答,也許這樣的事情將努力隱藏BUTTON2:

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

回答

2

我認爲,如果你試圖解釋你的最終目的是什麼,我也許可以真正幫助您實現最終的結果中最好的「jQuery的方式」 - 沒有這種,但是,所有我能說的是:

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

將提醒「你好」和:

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

將提醒「世界你好」

(作爲一個方面說明,重做選擇一個事件函數內部就像你在你的例子已經是不好的做法;你可以簡單地使用$(this)來表示當前正在採取行動的元素)

+0

我想用類「你好」,這是由兩個按鈕共享以隱藏button2。爲了做到這一點,我還需要過濾button2所具有的「世界」類,但button1沒有。感謝關於$(this)的提示。 – 2009-07-18 03:48:40

+0

糾正我,如果我錯了,但attr('類')將返回一個數組,而不是一個字符串......有兩個類列出:'[「hello」,「world」]所以下一個問題是哪個一? – DGM 2009-07-18 03:50:14

+0

是的,我需要檢索attr('class')數組的第一個元素,然後將其應用於第二個元素。聽起來很爛,我知道。 – 2009-07-18 03:53:31

1

試試這個:

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

參考:element.className

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