Javascript 切换(隐藏/显示)<;tr>;对特定的attibute值使用jQuery
我想根据名为Javascript 切换(隐藏/显示)<;tr>;对特定的attibute值使用jQuery,javascript,jquery,html,toggle,Javascript,Jquery,Html,Toggle,我想根据名为status\u id的属性的值隐藏。我使用的是jQuery数据表 这是我尝试过的,但不起作用 这是我的表,我想在 我哪里错了?试试: 1) 使用$(this).closest('tr').children('span').find('span').attr('status\u id')获取状态\u id 2) 由于toggleVal是一个数组,您无法将字符串形式的statusToggle与toggleVal进行比较,因此请使用$。inArray $(document).on('cl
status\u id
的属性的值隐藏
。我使用的是jQuery数据表
这是我尝试过的,但不起作用
这是我的表,我想在
我哪里错了?试试:
1) 使用$(this).closest('tr').children('span').find('span').attr('status\u id')
获取状态\u id
2) 由于toggleVal
是一个数组,您无法将字符串形式的statusToggle
与toggleVal
进行比较,因此请使用$。inArray
$(document).on('click', '.hide-tasks', function (e) {
var toggleVal = [1, 9, 10, 11, 12];
var spanEle = $(this).closest('tr').children('span').find('span');
var statusToggle = spanEle.attr('status_id');
if($.inArray(statusToggle, toggleVal) !== -1) {
spanEle.toggle();
}
});
首先,
status\u id
是span
的一个属性,因此使用find()
是不正确的
其次,按钮
不在表中
,因此最近的()
在进入DOM时将找不到任何内容。您需要结合使用next()
和find()
。您还需要使用each()
最后请注意,创建自己的非标准属性将意味着您的HTML无效。要使用元素存储自定义数据,请使用data-*
attributes
从那里,您可以使用indexOf()
来发现状态id
是否在数组中,并根据需要使用toggle()
所需元素。试试这个:
var-toggleValues=[1,9,10,11,12];
$(文档)。在('单击','上。隐藏任务',函数(e){
$(this).next('table').find('span').each(function()){
var$el=$(本);
$el.closest('tr').toggle(toggleValues.indexOf($el.data('status-id'))==-1);
});
});代码>
切换
1.
2.
9
10
15
这是最好的答案。谢谢你。但是对我不起作用。您正在对字符串调用toggle()
。?您有语法错误,逻辑仍然不太正确。谢谢您,很高兴提供帮助。
$(document).on('click', '.hide-tasks', function (e) {
var toggleVal = [1, 9, 10, 11, 12];
var statusToggle = $(this).closest('tr').children('span').find('status_id');
if (statusToggle === toggleVal) {
statusToggle.toggle();
}
});
$(document).on('click', '.hide-tasks', function (e) {
var toggleVal = [1, 9, 10, 11, 12];
var spanEle = $(this).closest('tr').children('span').find('span');
var statusToggle = spanEle.attr('status_id');
if($.inArray(statusToggle, toggleVal) !== -1) {
spanEle.toggle();
}
});