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

循环通过元素,更改z索引,Javascript,javascript,jquery,html,css,z-index,Javascript,Jquery,Html,Css,Z Index,我有一组可以通过jquery拖动的元素。所有可拖动的元素都属于“element”类 每次移动一个元素时,我都希望遍历所有元素,并将z索引更改为5,然后将被拖动的元素z索引更改为10,以便拖动的元素始终位于顶部 这是我目前拥有的,但它不起作用 mousedown(function(){ var myObj = document.getElementsByClassName('element'); for(var i =0, il = myObj.length; i&

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

每次移动一个元素时,我都希望遍历所有元素,并将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';
 })
mousedown(函数(){
var myObj=document.getElementsByClassName('element');
for(var i=0,il=myObj.length;i
$(this)
指的是jQuery对象,而不是文档对象。请改用
this.style.zIndex=“10”

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

$(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
设置style属性,也可以使用


此外,您还可以使用类选择器选择和更改所有元素zIndex,而不是自己编写循环,而不查看css和元素结构的其余部分。这是不可能的,但您所做的一切都可以编写为

$('.element').not(this).css('zIndex', 5);
$(this).css('zIndex', 10);
//or this.style.zIndex='10';
style
属性属于dom元素,$(this)指的是
this
引用的dom元素的jQuery包装器。因此,您可以直接使用
this.style
设置style属性,也可以使用


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

它应该是
this.style.zIndex='10';
如果是我,我会保持z索引不变,并对dom重新排序,以便将最后一个拖动的元素移到末尾,从而位于顶部。这样,其他dra的堆叠顺序就会改变gging元素保持不变,假设非拖动元素可以重叠。它应该是
this.style.zIndex='10';
如果是我,我会保持z索引不变,并对dom重新排序,以便最后拖动的元素移到末尾,从而位于顶部。这样,其他拖动元素的堆叠顺序保持不变,假设e非拖动元素可以重叠。+1虽然可能更短;)没有真正的理由做
。不(this)
当您覆盖下一行
上的值时。+1虽然可能更短;)没有真正的理由做
。不(this)
当您覆盖下一行
上的值时。