2012-04-23 71 views
1

我有一個相當數量的複選框的應用程序。它們中的每一個都具有指示它們屬於哪個組的jQuery數據參數,例如, <input type="checkbox" class="show" data-group="zones" />jQuery選擇器可以根據數據查找元素嗎?

在某些情況下,我想根據它們包含的數據選擇這些複選框的子集。 jQuery選擇器可以拉這個嗎?如果沒有,有沒有其他方法可以做到手動過濾?

+0

+1,讓我們看看,如果我們得到更多的答案,這個 – Starx 2012-04-23 07:18:33

+0

你能表現出什麼樣的建議選擇應該看起來像? – Starx 2012-04-23 07:25:04

+0

我在想'$(「input:data('group'='zones')」);',或者甚至是$(「input」)。dataEquals('group','zones');'' – Hubro 2012-04-23 07:28:09

回答

4

當然,一個方法就是

$("input[data-group='zones']"); 

更新:

更改數據的價值也可以像這樣

$("input[data-group='zones']").each(function() { 
    $(this).data('group', 'newzone'); 
}); 
+0

看看http://api.jquery.com/category/selectors/,也可能幫助他! – 2012-04-23 07:05:24

+0

的確,我想到了這一點,但是按HTML元素的data- *屬性過濾,而不是在Javascript中元素的實際數據。例如,如果我要通過Javascript在元素上設置一些數據並嘗試使用這種方法,那麼就會失敗。 @AllanKimmerJensen我已閱讀文檔:-) – Hubro 2012-04-23 07:05:38

+0

@Codemonkey,如果您想更改數據,IT也不會失敗。等待我的更新 – Starx 2012-04-23 07:08:26

0

做研究了一下後,有也是另一種方法,使用過濾器()

var inputs = $('input').filter(function() { 
    return $(this).data("groups") == true 
}); 

下一頁操縱整個

inputs.each(function() { 
    $(this).data('groups', 'new zone'); 
}); 

或者修改單個元素

inputs[0].data('groups', 'new zone'); 
+0

這是我的意思是「手動過濾」:-)我希望jQuery可以使用選擇器來做到這一點。但是謝謝 – Hubro 2012-04-23 07:20:04

+0

@Codemonkey,然後擴展默認功能,製作自己的功能。 – Starx 2012-04-23 07:23:58