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;"

左が「0px」または「350px」のいずれかであり、すべての要素の上部が「0px」に設定されていない場合(ただし、ここでは重要ではありません)...

この投稿に出くわしました: jQuery .css("left") returns "auto" instead of actual value in Chrome

解決策を見つけたと思った場所... $jquery(this).position().left; 問題は、これが常に「0」を返すことです。これは正しくありません... 2 つおきの要素は「0px」ではなく、left="350px" である必要があるためです。

現在、ボディタグの直前にこの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 に答える