2013-05-18 33 views
-2

我有一系列的HTML元素,如jQuery來獲取匹配一個類名

<li id="1" class="jstree-unchecked jstree-open"> 
<li id="2" class="jstree-checked jstree-open"> 
<li id="3" class="jstree-unchecked jstree-open"> 
<li id="4" class="jstree-checked jstree-open"> 
<li id="5" class="jstree-checked jstree-open"> 
<li id="6" class="jstree-unchecked jstree-open"> 
<li id="7" class="jstree-undetermined jstree-open"> 

我想有類名的元素的ID的DOM元素的屬性值{jstree覈對jstree-undetermined}。

我曾嘗試使用選擇器,但在jQuery中有linq方式嗎?

你能幫忙看看jQuery的樣子嗎? ID的列表可以用逗號分隔。

輸出:「2,4,5,7」

+4

或者你可以最多一個小時花通過閱讀[jQuery的API文檔](http://api.jquery.com),然後立即知道如何自己做這件事。 –

+2

注意:雖然以數字開頭的'id'值在[HTML中有效](http://www.w3.org/TR/html5/elements.html#the-id-attribute),但它們[沒有使用(http://www.w3.org/TR/html401/types.html#type-name),仍然是[CSS中無效](http://www.w3.org/TR/CSS21/ syndata.html#value-def-identifier)等等(因爲jQuery使用CSS選擇器)通常最好避免它們。 –

+0

@ T.J.Crowder我認爲OP實際上並沒有在他的代碼中使用這些值,而只是想'示例值'來演示。我當然希望至少。將任意命名的ID分配給元素沒有意義。更重要的是,爲元素分配連續的ID通常代表更大的問題。如果您有任何讀者正在做這類事情,請考慮您的代碼結構。 T.J.儘管如此,可靠的評論 –

回答

8

最好的辦法是使用.map()方法:

var ids = $(".jstree-checked, .jstree-undetermined").map(function() { 
    return this.id; 
}).get(); 

console.log(ids.join()); // "2,4,5,7" 
+4

似乎不公平的是,質量差的問題似乎在阻止人們讚揚好的答案+1。 –

+0

非常好,適當的使用'.map'。我唯一需要改變的是首先調用'.get()'並使用原生的'.map',但是這個解決方案更多的是跨瀏覽器投訴。 –

+0

@ T.J。質量差的問題?你會怎麼保持這個問題簡單..? – jaxxbo