1

停止新闻!

我的错...我试图读取在我想读取它们时未设置的属性!

我正在使用 children 和 each 来遍历 DIV 的子元素。这给了我一个 this 对象,我用它来移动元素,使其成为另一个元素的子元素。这很好用......但我还需要访问要移动的元素的内联样式“左侧”......只是无法弄清楚如何获得该值......

$jquery("#thediv").children(".someclass").each(function () {

// move the element to another div
$jquery("#right").append($jquery(this));

});

上面的代码运行良好......但在我移动元素之前,我需要获取元素的内联左值。我努力了:

$jquery(this).css("left"); 

上面的行给了我“auto”作为回报,左边的实际值是“0px”。我必须使用什么来获得左值?

我还想在移动元素之前将内联样式设置为空...为此我尝试过:

$jquery(this).attr('style', '');

上面的行没有清空内联样式,它就像最初为元素输出的一样。我必须使用什么来清空该元素的内联样式?

循环中由变量 this 表示的元素的内联样式具有以下内联样式: style="position: absolute; left: 0px; top: 0px;"

其中 left 是“0px”或例如“350px”,并且所有元素的顶部未设置为“0px”(但此处不重要)...

我遇到了这篇文章: jQuery .css("left") 在 Chrome 中返回 "auto" 而不是实际值

我以为我找到了解决方案... $jquery(this).position().left; 问题是这总是让我返回“0”,这是不正确的......因为每个第二个元素都应该有 left="350px" 而不是 "0px"

目前我在结束正文标记之前有这个jquery代码......也许这与这个问题有关......但我认为这不应该是一个原因,因为我试图访问的样式都是内联的。

4

1 回答 1

0

您是要从#thediv 还是从.someclass 获取宽度?如果你需要#thediv 的宽度,那么你需要使用 parent:$(this).parent().css("left");因为每个循环中 this 的上下文是 someclass div。

请参阅此处的示例:http: //jsfiddle.net/thespacebean/NJ9ny/

哦,要完全删除内联 CSS,您可以使用.removeAttr("style")

于 2013-10-20T21:15:14.623 回答