Javascript &引用;js Uncaught TypeError:无法设置属性';zIndex';“未定义”的定义;
为了在动作后更改图片的z索引,我用js编写了以下代码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")
$("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从中取出