Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.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 JQuery在外部单击时隐藏多个具有类似id的div_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript JQuery在外部单击时隐藏多个具有类似id的div

Javascript JQuery在外部单击时隐藏多个具有类似id的div,javascript,jquery,html,css,Javascript,Jquery,Html,Css,如果没有单击任何一个div,我想隐藏所有具有类似id的div。在我的代码中,它只对第一个div起作用,因为我使用了索引[0]来获取id。我想将它推广到对所有id起作用 代码如下: $(窗口)。单击(函数(e){ 如果(e.target.id!=$('[id^=div_3;]')[0].id){ $('[id^=div_]')。隐藏(); } }); div{ 高度:150像素; 宽度:150px; 显示:内联块; 背景:绿色; 利润率:10px; 颜色:#fff; 文本对齐:居中; 线高:15

如果没有单击任何一个div,我想隐藏所有具有类似
id
div
。在我的代码中,它只对第一个div起作用,因为我使用了
索引[0]
来获取id。我想将它推广到对所有id起作用

代码如下:

$(窗口)。单击(函数(e){
如果(e.target.id!=$('[id^=div_3;]')[0].id){
$('[id^=div_]')。隐藏();
}
});
div{
高度:150像素;
宽度:150px;
显示:内联块;
背景:绿色;
利润率:10px;
颜色:#fff;
文本对齐:居中;
线高:150px;
}

一个
两个
三

这里的简单解决方案是在所有元素上使用公共类。然后可以使用
is()
确定
e.target
是否是这些元素之一,并根据需要隐藏/显示它们。试试这个:

$(窗口)。单击(函数(e){
如果(!$(e.target).is('.div')){
$('.div').hide();
}
});
div{
高度:150像素;
宽度:150px;
显示:内联块;
背景:绿色;
利润率:10px;
颜色:#fff;
文本对齐:居中;
线高:150px;
}

一个
两个
三

四个
嘿,你可以使用这个功能

if(e.target.id=="" || $('[id^=div_]').filter('#'+e.target.id).length==0){
     $('[id^=div_]').hide();
  }
filter
功能将过滤
div
列表中的所选div,其中
id
以div开头

$(窗口)。单击(函数(e){
if(e.target.id==“”| |$(“[id^=div|]”).filter(“#”+e.target.id).length==0){
$('[id^=div_]')。隐藏();
}
});
div{
高度:150像素;
宽度:150px;
显示:内联块;
背景:绿色;
利润率:10px;
颜色:#fff;
文本对齐:居中;
线高:150px;
}

一个
两个
三

四个
添加一个类,然后按类隐藏所有的div。那么,如果单击任何div,您不想隐藏它们吗?这就是你要问的吗?为什么不使用类/名称instead@A.Lau是,如果在外部单击,我想隐藏它们。请使用Array.findfunction@Paddy我不能像添加类那样对HTML进行任何更改。问题是我不能对HTML进行任何更改。我不能在HTMLhank中添加任何类。这是一个很好的解决方案。我从未想过。