0

私はこのhtmlを持っています:

<div id="h101" data-stellar-ratio="6"><img src="images/h1_01.png" width="600"></div>
<div id="cloud01" data-stellar-ratio="0.5"><img src="images/cloud_01-s.png"></div>
<div id="cloud02" data-stellar-ratio="0.4"><img src="images/cloud_01-s.png"></div>
<div id="island01" data-stellar-ratio="2"><img src="images/island_01.png" width="620"></div>

すべてのIDから配列を作成します

$(".section > div").each(function() {
ellementArray.push($(this).attr("id"));});

これで、すべての値が ellementArray に格納されました。私がやりたいことは、これを作成することです:

var h101Left = $("#h101").position().left;
var cloud01Left = $("#cloud01").position().left;
var island02Left = $("#island02").position().left;
var island03Left = $("#island03").position().left;

こんなことを考えていた...

for (var i = 0; i < ellementArray.length; i++){
        jQuery.globalEval("var ellementArray[i] = ellementArray[i];")
        console.log(ellementArray[i]);
    }

誰か助けてくれませんか?

4

1 に答える 1

3

あなたは物事を複雑にしすぎています。文字列(要素ID)から数値(左の位置の値)へのマップを作成するだけです。

var leftPositions = {};
$(".section > div").each(function ()
{
    leftPositions[this.id] = $(this).position().left;
});

ところで、それでもすべてのIDの配列が必要な場合は、の.map()代わりに.each()、および:this.idの代わりにを使用してください。$(this).attr('id')

var elementArray = $(".section > div").map(function ()
{
    return this.id
}).get();
于 2012-08-16T13:18:17.363 に答える