jQuery使用变量string附加html元素

时间:2011-01-28 07:27:38

标签: jquery

我是一个JQuery新手。我正在尝试将对象属性(以数组形式声明)附加到html元素,如下所示

HTML:

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

JQuery脚本:

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控制台没有显示任何错误报告,但根本没有显示附加内容。

我做错了什么?另外,有没有办法用.each()取代for循环,如果这是一个更好的做法?

谢谢

2 个答案:

答案 0 :(得分:6)

您的属性列表未正确形成。使用方括号而不是大括号形成数字索引的列表文字。

您发布的代码应该给您一个语法错误。如果不是,它可能根本就没有被执行。

这是一个固定版本:


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

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

答案 1 :(得分:1)

如另一个答案所述,obj应该如此定义:

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

for循环可行,但似乎更好的做法是使用.each(),如果没有其他原因只是因为您不必对值进行硬编码 - 如果您使用for ,如果你改变了属性的数量,你也必须更新那个循环。我将如何做到这一点:

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