Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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 如果元素在数组中具有属性值,则隐藏该元素_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript 如果元素在数组中具有属性值,则隐藏该元素

Javascript 如果元素在数组中具有属性值,则隐藏该元素,javascript,jquery,arrays,Javascript,Jquery,Arrays,我试图实现的是,如果指定的属性与数组中的值匹配,则隐藏特定的div 正在使用的信息将是动态的,需要隐藏的div可能会更改。因此,它必须是可扩展的 到目前为止,我掌握的是获取属性并将它们放入数组中。然后,我将把放入该数组的内容与另一个指定div需要隐藏的数组进行匹配。如果divs属性匹配,则隐藏该div,否则让div渲染 现在我得到了一个关于隐藏潜水艇的全有或全没有的结论 这是密码 var匹配=['2','3']; var mids=[]; $('.merch tile')。每个(函数(即,e)

我试图实现的是,如果指定的属性与数组中的值匹配,则隐藏特定的div

正在使用的信息将是动态的,需要隐藏的div可能会更改。因此,它必须是可扩展的

到目前为止,我掌握的是获取属性并将它们放入数组中。然后,我将把放入该数组的内容与另一个指定div需要隐藏的数组进行匹配。如果divs属性匹配,则隐藏该div,否则让div渲染

现在我得到了一个关于隐藏潜水艇的全有或全没有的结论

这是密码

var匹配=['2','3'];
var mids=[];
$('.merch tile')。每个(函数(即,e){
中间推力($(e).attr('m_mid');
});
//警报(mids);
对于(变量c1=0;c1

地砖1
地砖2
瓷砖3
您可以

var matching = ['2', '3'];  

$('.merch-tile').filter(function (i, e) {
    return matching.indexOf($(this).attr('m_mid')) > -1
}).hide();
var匹配=['2','3'];
$('.merch tile').filter(函数(i,e){
返回匹配的.indexOf($(this.attr('m_mid'))>-1
}).hide()

地砖1
地砖2

磁贴3不需要
mids
阵列。只需在DOM元素上循环,测试属性是否在数组中

我也不明白
$(document.body)。在结尾追加(mids)
-
mids
不是HTML,它是一个数组

我还将您的自定义属性替换为
数据mid
<代码>数据XXX
属性保留给程序员用作扩展

如果要隐藏数组中的div,应测试
!=-1
,而不是
==-1

var匹配=['2','3'];
var something\u matches=false;
$('.merch tile')。每个(函数(){
if($.inArray($(this.attr('data-mid'),匹配)!=-1){
$(this.hide();
某件事与事实相符;
}
});
如果(某物匹配){
警惕(“匹配的东西”);
}

地砖1
地砖2
磁贴3查看您的代码:

if ($.inArray(nm_arg, mids) === -1)
    $('.merch-tile').hide(); // Look at here,you hide all, because of your have class name

alert('something matches');

$('.merch tile').hide()应该是
$('.merch tile[m_mid=“'+nm_arg+'”])。hide()不应使用自定义属性。使用
data mid
而不是
m_mid
。尝试将该片段添加到小提琴似乎不起作用。在Rolyataylor2上展开,整个脚本可以压缩为
matching.forEach(函数(e){$('[m_mid='+e+']).hide()),前提是设置了匹配数组。$(document.body).append(mids)这只是一个测试,用于将值插入到数组中,以确保事情按我所期望的方式运行。大多数人使用
console.log()
处理类似的内容。这与我的意图相反。如果
$,则代码会将其隐藏。inArray
返回
-1
,这意味着它不在数组中。我颠倒了测试。显然,你自己的代码也与你的意图相反,而我的代码就是基于这个。正是我想要的,也很简短,谢谢