2012-08-16 2 views
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]); 
    } 

누군가가 도와주세요 수 : 내가 원하는 무엇 이를 만드는 것입니다?

답변

3

너무 복잡합니다. , 당신은 여전히 ​​모든 ID의 배열을 필요로하는 경우

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

BTW, .map() 대신 .each()를 사용 : 그냥 숫자 문자열에서지도 (요소 ID) (위치 - 왼쪽 값)를 만들 및 this.id instead of $(this).attr('id') :

var elementArray = $(".section > div").map(function() 
{ 
    return this.id 
}).get(); 
+0

좋은 해결책이지만 내 출력은 다음과 같습니다. h101 = 200; 내가 원하는 것은 h101left = 200입니다 ... – user1603310

+0

좋아요, 그래서'leftPositions [this.id]'를'leftPositions [this.id + 'left']'로 변경하십시오. 로켓 과학이 아닙니다. –

관련 문제