Javascript &引用;js Uncaught TypeError:无法设置属性';zIndex';“未定义”的定义;

Javascript &引用;js Uncaught TypeError:无法设置属性';zIndex';“未定义”的定义;,javascript,jquery,Javascript,Jquery,为了在动作后更改图片的z索引,我用js编写了以下代码 $("id").click(function{ document.getElementsByClassName.style.zIndex = 2; }); 但是,它显示的错误如下 js Uncaught TypeError:无法设置未定义的属性“zIndex” 是否有人面临同样的问题并已解决?THX您需要为getElementsByClassName提供参数。请参阅。它也可以通过jquery完成 $(".class_name")

为了在动作后更改图片的z索引,我用js编写了以下代码

$("id").click(function{

     document.getElementsByClassName.style.zIndex = 2;
});
但是,它显示的错误如下

js Uncaught TypeError:无法设置未定义的属性“zIndex”


是否有人面临同样的问题并已解决?THX

您需要为
getElementsByClassName
提供参数。请参阅。

它也可以通过jquery完成

$(".class_name").css("z-index","2");
这应该起作用:

您只需提供一个类名并迭代元素:

$("id").click(function{
   var elems = document.getElementsByClassName("some_class");

   for(var i = 0; i < elems.length; i++) {
      elems[i].style.zIndex = 2;
    }
});
$("id").click(function{
 var elements = document.getElementsByClassName('some-class-name');
 if (elements.length > 0) {
  elements[0].style.zIndex = 2;
 }

});
$(“id”)。单击(函数{
var elems=document.getElementsByClassName(“某些类”);
对于(变量i=0;i
第一个GetElementsByCassName需要向其传递一个参数,以指定要接收的元素应包含的类名

只需选择返回数组中的第一个并对该值进行操作,确保检查返回数组是否包含任何元素:

$("id").click(function{
   var elems = document.getElementsByClassName("some_class");

   for(var i = 0; i < elems.length; i++) {
      elems[i].style.zIndex = 2;
    }
});
$("id").click(function{
 var elements = document.getElementsByClassName('some-class-name');
 if (elements.length > 0) {
  elements[0].style.zIndex = 2;
 }

});
但是我真的建议您使用jQuery来确保跨浏览器的兼容性

$("id").click(function{
 var elements = $('.some-class-name');
 if (elements.length > 0) {
  elements.first().css({ 'z-index' : 2 });
 }

});
编辑:
因为您说过,您想更改一个图像对象的zIndex,所以我在jQuery中使用first(),在vanilla JS中使用[0]来对第一个元素进行操作。但在这种情况下,只需使用唯一的id属性作为标识符来查询一个元素。

如果使用
getElementsByClassName
,则函数中缺少参数,元素采用数组格式,因此还需要指定元素位置
[0]
,或者在循环中执行此操作。这是您的跑步示例

$(“#测试”)。单击(函数(){
document.getElementById(“test”).style.zIndex=0;
document.getElementsByClassName(“testClass”)[0].style.zIndex=999;
});
$(“.testClass”)。单击(函数(){
document.getElementsByCassName(“testClass”)[0].style.zIndex=0;
document.getElementById(“test”).style.zIndex=999;
});
#测试{
位置:绝对位置;
宽度:100%;
身高:100%;
背景色:红色;
z指数:999;
}
.testClass{
位置:绝对位置;
宽度:100%;
身高:100%;
背景颜色:绿色;
}

试验

根据我的说法,测试类
,正如我们所知,Javascript中的ID对于特定元素是唯一的,但对于类则不是。类是可重用的

对于要使用的类,请指定要使用的类的具体出现

下面是帮助我解决问题的代码

funtion displayModal(){
     var play_button_overlay = document.getElementsByClassName("play_button")[0];
     play_button_overlay.style.zIndex="1";
    }

提及类名,然后迭代应用。例如:-
document.getElementsByClassName(“some_类”)
提供元素数组
.GetElementsByCassName
方法没有
style
属性。是的,我忘了打印它。您的答案可能是对的,但您使用的jQuery在问题中没有标记,但问题代码本身包含jQuery,这就是我回答添加jQuery标记的原因。请对您的答案再加一点解释。您好,您能告诉我为什么使用jQuery可以确保跨浏览器的兼容性吗?THX从中取出