Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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 切换(隐藏/显示)<;tr>;对特定的attibute值使用jQuery_Javascript_Jquery_Html_Toggle - Fatal编程技术网

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();
    }
});