jQuery foreach循环,多个css值?

jQuery foreach循环,多个css值?,jquery,Jquery,我正在尝试循环.each()css值。我只知道如何得到索引 我的想法是保存左值,因为当浏览器低于800px时,我编写的jQuery代码会更改左位置,当浏览器重新调整到800px以上时,我希望返回默认的左值 仅供参考,css不是解决方案,因为左边的值来自数据库,是动态的 这就是我试图存储每个左位置并在if语句中使用它的原因 下面是一些示例html代码,请查看此代码以了解更多信息 <div class="sublayer_1"> <div style="position:

我正在尝试循环
.each()
css值。我只知道如何得到索引

我的想法是保存左值,因为当浏览器低于800px时,我编写的jQuery代码会更改左位置,当浏览器重新调整到800px以上时,我希望返回默认的左值

仅供参考,css不是解决方案,因为左边的值来自数据库,是动态的

这就是我试图存储每个左位置并在if语句中使用它的原因

下面是一些示例html代码,请查看此代码以了解更多信息

<div class="sublayer_1">
    <div style="position: absolute; left: 100px;">Coffee</div>
    <div style="position: absolute; left: 300px;">More Coffee</div>
</div>
此if语句包装在一个函数中,该函数在resize函数中调用。
if((w)>800)
语句中的变量位于提取默认值的函数之外,而else语句中的变量位于resize函数之内,因此它们是动态的


就实践而言,IDK知道这是如何计算的,但它只是对我产生了作用,但我在获取每个左值时遇到了困难,这就是为什么我问我上面做了什么。

在传递给
每个
的函数中,使用
$(this)
检索当前元素,然后获取其

function adjustAttempt3() {

     $(".sublayer_1  div").each(function (index) {
         alert(index + ":" + $(this).css("left"));
     });  
}

JsFiddle:当你说
var pos=$('.sublayer\u 1 div').css('left')
它获取满足选择器的第一个元素的
left
值,您需要的是在
每个
循环中您想要当前循环元素的位置,所以

应该是

function adjustAttempt3() {
    $(".sublayer_1  div").each(function (index) {
        var pos = $(this).css('left');
        alert(index + ":" + pos);
    });
}


//Attempt 3
adjustAttempt3();

演示:

您只获得第一个
div
位置,因为您没有迭代获得它

试试这个:

function adjustAttempt3() {

     $(".sublayer_1").find('div').each(function (index) {
         var pos = $(this).css('left');
         alert(index + ":" + pos);
     });


}

实例:

我将通过以下方式为每个元素存储原始CSS值:

$(".sublayer_1  div").each(function() {
    $(this).data('origLeft', $(this).css('left'));
});
如果动态生成HTML,甚至不必进行此调用,可以将值直接存储在HTML中:

<div style="position: absolute; left: 100px;" data-orig-left="100px">Coffee</div>

从“获取匹配元素集中第一个元素的样式属性值”什么?我真的不明白这里的问题是什么。是否要循环浏览元素的CSS属性?
each()
的每次迭代在哪里经过
{left:'100px'}
什么的?我真的不知道你在问什么。但是你在寻找
这个
——这就是你如何访问
每个
循环中的元素,
$(这个)
来访问jquery扩展元素。为什么不在每个元素上的一个额外属性中存储原始的左值,例如
咖啡
?@gvee好主意,我以前使用数据值来存储信息,让我总结一下,如果它与我正在进行的这个项目配合得很好,我马上就回来讨论这个问题。。我必须看看如何使用if语句。在这种情况下,为什么不使用
$(this)
而不是
pos.eq(index)
?@FelixKling Good point是的,我不知道在那里使用它,老实说,我并不总是确定何时使用
$(this)
。我知道在函数中使用它,如果您试图对函数的元素做些什么(不确定我是否正确地使用了它),但我不知道它也有助于循环。Arun说得很好,“它获取满足选择器的第一个元素的左值”,这对我来说有点好,但我确信它还有很多用途。@Mike
每个
函数将调用为每个选定元素提供的匿名函数,将
this
设置为每次迭代的当前元素好的,这对@gvee上面所说的内容很有意义,我喜欢。这应该配合得很好,是一个非常好的方法,允许一些灵活性。Bravo你知道我在第四次尝试时是怎么做的,除了我没有使用
$(this)
。我唯一关心的是如何存储原始的左值,我确信这很容易,在这篇评论中很难解释我自己,但是看看OP有一个调整大小的功能,我需要在调整大小之外存储默认值,这有意义吗?哈哈,我可以把它写成一个变量,或者是一个函数,然后在我的resize funct中传递这个函数吗?哦,是的,好吧,我没意识到这是两者的结合,我得到了很多快速的答案,我试着去回应,然后把我的脑袋都绕过去了。我看到他确实使用了
.data
$(这个)
谢谢你回答我所有的问题。我看到你帮了很多忙,谢谢。我想把所有这些信息塞满,有一天成为专家:)是的,就是这样,类似于Aruns的回答,不确定谁是第一个,但我滚动到底部,可能已经放弃了这个,谢谢。
$(".sublayer_1  div").each(function() {
    $(this).data('origLeft', $(this).css('left'));
});
<div style="position: absolute; left: 100px;" data-orig-left="100px">Coffee</div>
$(".sublayer_1  div").each(function() {
   var left = $(this).data('origLeft');
});