JQuery-按JQuery中的属性筛选每个元素
我正在尝试将所有可见行的数据类型值推送到一个数组中。我如何使用jquery呢 我做了类似的事情,但我很确定这是不正确的,因为它不起作用JQuery-按JQuery中的属性筛选每个元素,jquery,Jquery,我正在尝试将所有可见行的数据类型值推送到一个数组中。我如何使用jquery呢 我做了类似的事情,但我很确定这是不正确的,因为它不起作用 var myArray = []; $('#myTableId tbody tr').each(function() { myArray.push($(this).not('.class="hidden"').data('type')); }); ,您使用的选择器不正确。在.no
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但是jQuerydata()
是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但是jQuerydata()
是data-
attributes的访问器不,它不是。它是jQuery数据缓存的访问器。数据缓存从data-*
属性初始化,但随后与它完全分离<代码>数据
从不写入数据-*
属性,这可能很重要,而且如果您只需要属性值,则会不必要地复制缓存中的数据。它还处理OP可能需要或不需要的数据。例如,给定
,typeof$(theDiv).data(“foo”)
是number
@T.J.Crowder ok…就访问属性而言,我的不好。。。我明白你的意思。真的看不出除了性能时间之外,处理它是多么不必要