遍历元素,更改z索引,Javascript

Looping thru elements, changing z index, Javascript

本文关键字:索引 Javascript 更改 元素 遍历      更新时间:2024-06-20

我有一组元素,可以用jquery拖动。所有可拖动的元素都属于"元素"类。

每次移动一个元素时,我都希望循环浏览所有元素,并将z索引更改为5,然后将被拖动的元素的z索引改为10,这样拖动的元素将始终位于顶部。

这是我目前拥有的,但它不起作用。

mousedown(function(){
        var myObj = document.getElementsByClassName('element');
        for(var i =0, il = myObj.length; i<il; i++){
            myObj[i].style.zIndex='5';
        }
        $(this).style.zIndex='10';
 })

如何强制$(this)显示在element类中的所有其他元素之上?

$(this)指的是jQuery对象,而不是文档对象。请改用this.style.zIndex="10";

由于您没有调用任何jQuery,因此没有$(this)可供参考!

如果看不到css和元素结构的其余部分,就不可能有太多内容,但您所做的一切都可以写成

$('.element').not(this).css('zIndex', 5);
$(this).css('zIndex', 10);
//or this.style.zIndex='10';

style属性属于dom元素,$(this)是指this引用的dom元素的jQuery包装器。因此,您可以直接使用this.style设置样式属性,也可以使用.css()来执行此操作。

此外,您还可以使用类选择器来选择和更改所有元素zIndex,而不是自己编写循环