循环通过元素,改变z索引,Javascript

时间:2013-12-10 08:49:35

标签: javascript jquery html css z-index

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

每次移动一个元素时,我想遍历所有元素并将z-index更改为5,然后将被拖动的元素z-index更改为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类的所有其他元素之上?

2 个答案:

答案 0 :(得分:3)

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

由于您没有调用任何jQuery,因此无法引用$(this)

答案 1 :(得分:1)

没有看到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而不是自己编写循环