2012-04-23 74 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

相关问题