JQuery-按JQuery中的属性筛选每个元素

JQuery-按JQuery中的属性筛选每个元素,jquery,Jquery,我正在尝试将所有可见行的数据类型值推送到一个数组中。我如何使用jquery呢 我做了类似的事情,但我很确定这是不正确的,因为它不起作用 var myArray = []; $('#myTableId tbody tr').each(function() { myArray.push($(this).not('.class="hidden"').data('type')); }); ,您使用的选择器不正确。在.no

我正在尝试将所有可见行的数据类型值推送到一个数组中。我如何使用jquery呢

我做了类似的事情,但我很确定这是不正确的,因为它不起作用

var myArray = [];

            $('#myTableId tbody tr').each(function() {
                myArray.push($(this).not('.class="hidden"').data('type'));
            });
,您使用的选择器不正确。在
.not()
方法中使用
.hidden
应该足够了,即:

var myArray = [];

 $('#myTableId tbody tr').each(function() {
      var t = $(this).not('.hidden').data('type');
      if(!!t)
          myArray.push(t);
});
下面是一个概念验证示例:

$(函数(){
var myArray=[];
$('#myTableId tbody tr')。每个(函数(){
var t=$(this).not('.hidden').data('type');
如果(!!t)
myArray.push(t);
});
log(myArray);
});

lorem(不隐藏)
ipsum(.hidden)
多洛(不隐藏)
,您使用的选择器不正确。在
.not()
方法中使用
.hidden
应该足够了,即:

var myArray = [];

 $('#myTableId tbody tr').each(function() {
      var t = $(this).not('.hidden').data('type');
      if(!!t)
          myArray.push(t);
});
下面是一个概念验证示例:

$(函数(){
var myArray=[];
$('#myTableId tbody tr')。每个(函数(){
var t=$(this).not('.hidden').data('type');
如果(!!t)
myArray.push(t);
});
log(myArray);
});

lorem(不隐藏)
ipsum(.hidden)
多洛(不隐藏)
在循环之前使用map()和
not()

var myArray =  $('#myTableId tbody tr').not('.hidden').map(function(){
   return $(this).data('type')
}).get();
您可以对
$执行相同的操作。每个
也都将保持相同的
not()
在循环之前使用map()和
not()

var myArray =  $('#myTableId tbody tr').not('.hidden').map(function(){
   return $(this).data('type')
}).get();
您可以使用
$执行相同的操作。每个
也都将保持不变
not()
,您可以使用以下函数:

var myArray = [];

$(document).ready(function() {
   $('#myTableId tr').each( function() {
     if (! $(this).hasClass('hidden'))
        myArray.push($(this).data('type'));
   });
});

您可以使用以下功能:

var myArray = [];

$(document).ready(function() {
   $('#myTableId tr').each( function() {
     if (! $(this).hasClass('hidden'))
        myArray.push($(this).data('type'));
   });
});


首先,我们必须了解html的外观,其次才知道预期结果。请检查什么是
。class=“hidden”
是无效的选择器。你的意思是
$(this).不是('.hidden')
?它只是一个有许多行的表,有些是隐藏的。它们还有一个数据类型属性,只有当它们位于可见行上时,我才尝试将其推入数组中。Terry,你说得对!该死的。我们当然不能不先看看你的html是什么样子,然后才知道你的预期结果是什么。请检查什么是
。class=“hidden”
是无效的选择器。你的意思是
$(this).不是('.hidden')
?它只是一个有许多行的表,有些是隐藏的。它们还有一个数据类型属性,只有当它们位于可见行上时,我才尝试将其推入数组中。Terry,你说得对!妈的,即使是用正确的方法也没有意义selector@KevinB
$(this).not('.hidden')。data('type')
不是一个值吗?@Terry最终会把一堆
未定义的
”推到不可用的行上hidden@charlietfl修正了。即使使用正确的方法也没有意义selector@KevinB
$(this.not('.hidden')。数据('type')如何
不是一个值吗?@Terry最终会将一堆
未定义的
推到不确定的行上hidden@charlietfl修正。
数据
可能不是正确的选择,除非OP真的使用了
数据
提供的功能。根据问题,他们只需要attriubute值,即
attr(“数据类型”)
。(请记住:
data
不是
data-*
属性的访问器。它既多又少。)您也可以使用
:not(.hidden)
将其卸载到浏览器的选择引擎:
$('myTableId tbody tr:not(.hidden)…
是五年前添加的,因此,这些天应该得到可靠的支持。@T.J.Crowder但是jQuery
data()
data-
attributes的访问器不,它不是。它是jQuery数据缓存的访问器。数据缓存从
data-*
属性初始化,但随后与它完全分离<代码>数据
从不写入
数据-*
属性,这可能很重要,而且如果您只需要属性值,则会不必要地复制缓存中的数据。它还处理OP可能需要或不需要的数据。例如,给定
typeof$(theDiv).data(“foo”)
number
@T.J.Crowder ok…就访问属性而言,我的不好。。。我明白你的意思。真的看不出处理它会有多么不必要……除了性能时间和
数据
可能不是正确的选择,除非OP真的使用了
数据
提供的功能。根据问题,他们只需要attriubute值,即
attr(“数据类型”)
。(请记住:
data
不是
data-*
属性的访问器。它既多又少。)您也可以使用
:not(.hidden)
将其卸载到浏览器的选择引擎:
$('myTableId tbody tr:not(.hidden)…
是五年前添加的,因此,这些天应该得到可靠的支持。@T.J.Crowder但是jQuery
data()
data-
attributes的访问器不,它不是。它是jQuery数据缓存的访问器。数据缓存从
data-*
属性初始化,但随后与它完全分离<代码>数据
从不写入
数据-*
属性,这可能很重要,而且如果您只需要属性值,则会不必要地复制缓存中的数据。它还处理OP可能需要或不需要的数据。例如,给定
typeof$(theDiv).data(“foo”)
number
@T.J.Crowder ok…就访问属性而言,我的不好。。。我明白你的意思。真的看不出除了性能时间之外,处理它是多么不必要