我有这个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]);
}
有人可以帮忙吗?
答案 0 :(得分:3)
你的事情太复杂了。只需从字符串(元素ID)到数字(位置左值)创建一个映射:
var leftPositions = {};
$(".section > div").each(function ()
{
leftPositions[this.id] = $(this).position().left;
});
顺便说一句,如果您仍需要所有ID的数组,请使用.map()
代替.each()
和this.id
instead of $(this).attr('id')
:
var elementArray = $(".section > div").map(function ()
{
return this.id
}).get();