2016-11-07 33 views
2

我有幾個複選框,並且這些元素包含名爲data-id的自定義屬性。例如:通過查找類和檢查複選框類型獲取自定義屬性值的數組

<input class="testCheckbox" icheck="" ng-model="Model" data-id="57e3"type="checkbox"> 

我想通過類名和類型的元素來找到它的ID數組。目前,我有這樣的事情,它的工作原理:

var testIds = []; 
$('input.testCheckbox[type="checkbox"]:checked').each(function() { 
    testIds.push($(this).attr("data-id")) 
}); 

我想知道是否有jQuery的內聯函數可以返回相同的結果?我試過這個代碼,但它只返回第一個值:

console.log($('input.testCheckbox[type="checkbox"]:checked').attr("data-id")); 

我不知道我在做什麼錯?最好的祝福。

+0

無每個或地圖,你不能做到這一點。它只會返回第一個值 – Mahi

回答

2

有沒有內聯函數要做到這一點,但你可以通過使用map()而不是縮短你的代碼:

var testIds = $('input.testCheckbox[type="checkbox"]:checked').map(function() { 
    return $(this).data('id'); 
}).get(); 
+0

get方法有什麼用? – Mahi

+1

它直接返回底層數組,而不是將其包裝在jQuery對象中。請參閱http://api.jquery.com/get獲取更多信息 –

+0

我們如何知道哪個get方法是這樣的? jquery也有這個get方法.. https://api.jquery.com/jquery.get/ – Mahi