2012-09-21 69 views
2

我想按類選擇一個元素,並將其分配給一個變量,但我希望該元素是一個標題元素。讓我解釋一下:在任何特定時間,我的頁面上都會有這個特定類別的3個元素:一個是<a>,一個是<p>,另一個是未知類型的標題元素。 <h1><h2>按類別選擇標題元素

選擇<a><p>很容易,即$("a.myclass"),但我不能做到這一點與我的標題元素。我需要這樣的東西:

var a = $("a.myclass"); 
var p = $("p.myclass"); 
var heading = $(some selector to get the heading); 

請幫助!

另外,我知道這個問題的標題不是很好。如果您願意,請修改並重新說明。

回答

4

您可以使用:頭選擇 - http://api.jquery.com/header-selector/

var header = $(":header"); 

這將選擇所有頭元素,例如H1,H2,H3 ...

您也可以使用它作爲一個過濾器,如果你只需要與一個特定類的頭標籤,例如:

var header = $(".myClass").filter(":header"); 
+0

所以,我可以寫'$( 「:header.myclass」)'? – user1689591

+0

看到我的編輯關於使用選擇器作爲過濾器,雖然這也將工作 – doublesharp

+0

儘管每個文檔,你應該看到使用過濾器的性能增加:因爲':header'是一個jQuery擴展,而不是CSS規範的一部分,使用':header'的查詢不能利用本地DOM querySelectorAll()方法提供的性能提升。爲了在使用':header'選擇元素時獲得最佳性能,首先使用純CSS選擇器選擇元素,然後使用'.filter(「:header」)'。 – doublesharp

0

這條線將抓住任何h1h2,或h3myclass類:

var h = $('h1.myclass, h2.myclass, h3.myclass'); 

如果你不知道什麼樣的元素無論你能做到這一點,以取代所有3個電話:

var myclass = $('.myclass'); 

您還可以通過所有這些,其存儲基於標籤名這樣的循環:

var data = []; 

$('.myclass').each(function(){ 
    data[this.tagName] = this; 
}); 
​ 
+0

這不會爲H4,H5等工作... – doublesharp