2015-08-28 203 views
1

我需要從<ul>獲取'車輛'類的ID。我怎樣才能得到使用jQuery/JavaScript?可以通過迭代所有元素來完成嗎?提前致謝。獲取具有特定類別的所有子元素的ID

<ul id="ulList"> 
    <li id="car" class="vehicle"> 
    <li id="bus" class="vehicle"> 
    <li id="cat" class="animal"> 
    <li id="dog" class="animal"> 
    <li id="bike" class="vehicle"> 
    <li id="monkey" class="animal"> 
</ul> 
+2

_可以通過遍歷所有元素來完成嗎?_你試過了嗎? – Jai

回答

11

使用map()

此外,更正您的HTML標記,如片段(class="")。

最後,使用.get()如果你需要一個真正的JavaScript數組(而不是字符串的一個jQuery集合  — jQuery的集合[臺]通常含有DOM元素,但可以包含任何東西)。

var ids = $('#ulList .vehicle').map(function(){ 
 
    return $(this).attr('id'); 
 
    }).get(); 
 

 
console.log(ids);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
 
<ul id="ulList"> 
 
    <li id="car" class="vehicle"></li> 
 
    <li id="bus" class="vehicle"></li> 
 
    <li id="cat" class="animal"></li> 
 
    <li id="dog" class="animal"></li> 
 
    <li id="bike" class="vehicle"></li> 
 
    <li id="monkey" class="animal"></li> 
 
</ul>

+0

@AmmarCSE我猜'.get()'也應該在那裏你正在使用jQuery的'.map()'。 – Jai

+0

@Jai ...但需要爲舊瀏覽器填充。 jQuery涵蓋了這個要求 – CodingIntrigue

+1

@ T.J.Crowder,很好,謝謝你的建議 – AmmarCSE

1

vehicleIds是一個數組對您push所有它的類是vehicle元件的ID。

var vehicleIds = []; 
$(".vehicle").each(function(){ 
    vehicleIds.push($(this).attr("id")); 
}); 
alert(vehicleIds); 

然後我alert數組在結束。

+1

我做了一些小的改動,但是這個解釋有用,謝謝! – SuperBiasedMan

+0

@SuperBiasedMan的幫助永遠是值得讚賞的,歡迎光臨! – CodeHunter

0

因爲已經有其他的答案與jQuery,這裏是用vanila的JavaScript替代:

var vehicles = document.querySelectorAll("ul#ulList > li.vehicle"); 
 
var ids = [].map.call(vehicles, function(elem) { 
 
    return elem.id; 
 
}); 
 
console.log(ids);
<ul id="ulList"> 
 
    <li id="car" class="vehicle"> 
 
    <li id="bus" class="vehicle"> 
 
    <li id="cat" class="animal"> 
 
    <li id="dog" class="animal"> 
 
    <li id="bike" class="vehicle"> 
 
    <li id="monkey" class="animal"> 
 
</ul>

0
$('div','#main').each(function(){ 
    array.push($(this).attr('id')); 
}); 

這裏的div是其子女的ID已經在推的元素數組&'#main'是該div的ID。

希望這會幫助你。

相關問題