2011-01-28 5 views
1

저는 JQuery Newbie입니다.jQuery 변수 문자열이있는 html 요소 추가

<div id="container"> 
<p>some text </p> 
<p>some text </p> 
<p>some text </p> 
</div> 

JQuery와 스크립트 : 나는 다음

HTML 같은 HTML 요소에 (배열 형태로 선언 된) 객체의 속성을 추가하기 위해 노력하고있어

var obj{ 
property : {'apple', 'orange', 'banana'} 
} 

for(i=0; i<=2; i++){ 
$("#container p:eq("+i+")").append(obj.property[i]); 
} 

얻을 수 있도록 노력하겠습니다 이 :

<p>some text apple</p> 
<p>some text orange</p> 
<p>some text banana</p> 

내 Firebug 콘솔에는 오류 보고서가 표시되지 않지만 전혀 표시되지 않습니다.

내가 뭘 잘못하고 있니? 또한 더 나은 방법이라면 for 루프를 .each()로 대체 할 수있는 방법이 있습니까?

고맙습니다.

답변

6

귀하의 속성 목록이 올바르게 구성되지 않았습니다. 숫자로 색인 된 목록 리터럴은 대괄호를 사용하지 않고 대괄호를 사용하여 형성됩니다.

을 게시 한 코드는으로 인해 구문 오류가 발생해야합니다. 그렇지 않은 경우 단순히 실행되지 않을 가능성이 있습니다. 다른 답변에 명시된 바와 같이

 

    var obj = { 
    property : ['apple', 'orange', 'banana'] 
    } 

    for(i=0; i<=2; i++){ 
    $("#container p:eq("+i+")").append(obj.property[i]); 
    } 
 
+0

그에 대한 예제를 추가 ... – 0x60

+0

또한 변수 선언에 등호가 필요하다. var obj = {... –

1

, obj이 같은 정의되어야한다 : 여기

은 고쳐 버전의

var obj = { 
    property : ['apple', 'orange', 'banana'] 
} 

루프는 작동하지만 사용하는 것이 더 연습을 보인다 위해 .each()의 경우, 값을 하드 코딩 할 필요가 없다는 이유만으로 다른 이유가없는 경우 - for을 사용하는 경우 속성 수를 변경하면 해당 루프도 업데이트해야합니다. 여기에 내가 어떻게 할 것인가이다 :

$("#container > p").each(function(i) { $(this).append(obj.property[i]); });