Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.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 getElementsByClassName问题_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript getElementsByClassName问题

Javascript getElementsByClassName问题,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我试图在我的网站上显示一些团队成员,所以,我想显示一些小信息,比如图片和姓名,然后,当你点击它时,它会弹出一个div,其中有关于这个人的洞信息 我试图通过getElementsByClassName来实现,但是,它不起作用,它只对第一个节点起作用 我有两个div,一个名为“popup”的div包含信息,还有一个全尺寸的div不透明度 所以,我的功能是打开和关闭div: function showWindow(className,number){ var obj = document.getEle

我试图在我的网站上显示一些团队成员,所以,我想显示一些小信息,比如图片和姓名,然后,当你点击它时,它会弹出一个div,其中有关于这个人的洞信息

我试图通过getElementsByClassName来实现,但是,它不起作用,它只对第一个节点起作用

我有两个div,一个名为“popup”的div包含信息,还有一个全尺寸的div不透明度

所以,我的功能是打开和关闭div:

function showWindow(className,number){
var obj = document.getElementsByClassName(className);
$obj[number].fadeIn(1000);
var obj2 = document.getElementById('transparentBox');
obj2.style.display='block';
}

function closeWindow(className,number){
var obj = document.getElementsByClassName(className);
$obj[number].fadeOut("slow");
var obj2 = document.getElementById('transparentBox');
$(obj2).fadeOut(1000);
}
有趣的是,如果我在第一个元素节点上单击,它确实可以工作,但在另一个节点i.e上不起作用。第一个节点=obj[0]。对于其他的,只有transparentBox显示

两个div的css:

#transparentBox
{
position: fixed;
display:none;
padding:0;
margin:0;
top: 0;
left: 0;
width: 100%;
height: 100%;
background:rgba(255,255,255,0.5);
z-index: 499;
}
.popup {
position: absolute;
display:none;
top: 0;
bottom: 0;
left: 0;
right: 0;
width:700px;
padding:20px;
background-color:white;
margin: auto;
z-index:500;
overflow-y: scroll;
}
我会通过更多信息给他们打电话


但是它只显示第一个调用showWindow'popup',0,其他调用不显示popup,只显示透明框。

$obj[number]是您想要的,而不是$objnumber。所以你的fadeIn/fadeOut应该变成:$obj[number].fadeIn1000

我知道出了什么问题。 问题是,在我的HTML代码中,transparentBox div只覆盖了第一个弹出div,这就是其他div没有出现的原因


修好了。谢谢

您可以发布html的相关部分吗?您在哪里申报$obj?我只看到obj,而你没有在任何地方使用它。我想他想用jquery包装obj…在变量前面放一个$并不能使它成为jquery对象。如果没有完整的代码,HTML不是很清晰,但如果我正确理解为什么你不使用$this,并将对象与$this附近的类联系起来?抱歉,我已经修复了它,但它保留了同样的东西。我也修正了帖子中的代码。你用我的建议更新了你问题中的代码?我想我没有看到其中的[数字]部分。