Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery选择器能否根据元素的数据查找元素?_Javascript_Jquery - Fatal编程技术网

Javascript jQuery选择器能否根据元素的数据查找元素?

Javascript jQuery选择器能否根据元素的数据查找元素?,javascript,jquery,Javascript,Jquery,我有一个带有大量复选框的应用程序。它们每个都有一个jQuery数据参数,指示它们属于哪个组,例如 在某些情况下,我希望根据这些复选框包含的数据选择它们的子集。jQuery选择器可以执行此操作吗?如果没有,除了手动过滤,还有其他方法吗?当然,一种方法就是 $("input[data-group='zones']"); 更新: 更改数据的值也可以这样做 $("input[data-group='zones']").each(function() { $(this).data('group',

我有一个带有大量复选框的应用程序。它们每个都有一个jQuery数据参数,指示它们属于哪个组,例如


在某些情况下,我希望根据这些复选框包含的数据选择它们的子集。jQuery选择器可以执行此操作吗?如果没有,除了手动过滤,还有其他方法吗?

当然,一种方法就是

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

更改数据的值也可以这样做

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

当然,有一种方法很简单

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

更改数据的值也可以这样做

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

经过研究,还有另一种方法,使用过滤器

var inputs = $('input').filter(function() { 
  return $(this).data("groups") == true 
});
下一步作为一个整体进行操作

inputs.each(function() {
    $(this).data('groups', 'new zone');
});
或者修改单个元素

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

经过研究,还有另一种方法,使用过滤器

var inputs = $('input').filter(function() { 
  return $(this).data("groups") == true 
});
下一步作为一个整体进行操作

inputs.each(function() {
    $(this).data('groups', 'new zone');
});
或者修改单个元素

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


的确,我想到了这一点,但这是通过HTML元素的data-*属性过滤的,而不是Javascript中元素的实际数据。例如,如果我要通过Javascript在一个元素上设置一些数据,并尝试此方法,它将失败@AllanKimmerJensen我已经阅读了文档:-@Codemonkey,它应该不会失败,如果你也想更改数据的话。等待我的更新吧,显然我被误解了:P我担心的是,如果我要通过Javascript在元素上设置一些数据,那么jQuery选择器$input[data group='zones'];这将失败。这是因为data group=abc是一个HTML元素属性,而不是实际数据本身。数据是从HTML属性派生的,而不是从其他方面派生的。我想根据元素包含的数据选择元素,而不是它们的HTML5 data-*属性。@Codemonkey,当然,因为它选择了多个您应该使用的元素。每个元素都可以设置值。如果确定元素将仅为一个,则$input[data group='zone'][0];同样,我的问题与设置数据无关。设置数据很容易,我可以做到。我想知道jQuery是否支持一个选择器,它根据元素的实际数据而不是HTML5数据来查找元素-*attributeTrue,我想到了这一点,但是它通过HTML元素的data-*属性进行过滤,而不是Javascript中元素的实际数据。例如,如果我要通过Javascript在一个元素上设置一些数据,并尝试此方法,它将失败@AllanKimmerJensen我已经阅读了文档:-@Codemonkey,它应该不会失败,如果你也想更改数据的话。等待我的更新吧,显然我被误解了:P我担心的是,如果我要通过Javascript在元素上设置一些数据,那么jQuery选择器$input[data group='zones'];这将失败。这是因为data group=abc是一个HTML元素属性,而不是实际数据本身。数据是从HTML属性派生的,而不是从其他方面派生的。我想根据元素包含的数据选择元素,而不是它们的HTML5 data-*属性。@Codemonkey,当然,因为它选择了多个您应该使用的元素。每个元素都可以设置值。如果确定元素将仅为一个,则$input[data group='zone'][0];同样,我的问题与设置数据无关。设置数据很容易,我可以做到。我想知道jQuery是否支持一个选择器,它可以根据元素的实际数据而不是HTML5数据来查找元素-*属性+1,让我们看看我们是否能得到更多关于这个的答案。你能展示一个示例你建议的选择器应该是什么样的吗?我想的是$input:data'group'='zones';,或者甚至$input.dataEquals'group','zones';这几乎和我的答案一致,除了我所说的非常重要的区别。HTML元素的属性和与HTML元素+1关联的jQuery数据之间有很大的区别,或者至少可能有很大的区别,让我们看看我们是否能得到更多的答案。你能给我们一个示例看看你建议的选择器应该是什么样的吗?我在想$input:data'group'='zones';,或者甚至$input.dataEquals'group','zones';这几乎和我的答案一致,除了我所说的非常重要的区别。HTML元素的属性和与该HTML元素关联的jQuery数据之间存在巨大的差异,或者至少可能存在差异。这就是我所说的手动筛选:-我希望jQuery可以使用选择器来实现这一点。但是thanks@Codemonkey,然后扩展默认函数,创建您自己的功能。这就是我所说的手动筛选:-我希望jQuery可以使用选择器来实现这一点。但是thanks@Codemonkey,扩展默认功能,然后创建自己的功能。