得到一个数组在两条线上打印,但它在一条线上打印

时间:2014-09-10 17:18:20

标签: javascript html5

我正在尝试自学html n javascript我不认为我做得太糟糕了但是我想要一个阵列在两条线上打印但是它会像下面那样进行。

我的javascript看起来像这样:

var Abc = function(foo, bar) {
this.foo=foo;
this.bar=bar;
}

var def = new Abc("foo", ["foo", "bar"]);
var ghj = new Abc("bar", "foo");
var klm = [def, ghj];

for(var i = 0; i < klm.length; i++) {
    var testPara = document.createElement("p");
    var testNode = document.createTextNode(klm[i].foo);
    testPara.appendChild(testNode);
    document.getElementById(foobar).appendChild(testPara);

    var testPara1 = document.createElement("p");
    var testNode1 = document.createTextNode(klm[i].foo);
    testPara.appendChild(testNode);
    document.getElementById(foobar).appendChild(testPara1);
}

我的HTML是这样的:

<section id="foobar"></section>

我希望它在页面上打印出来的是

FOO

FOO

FOO

但我得到的是:

FOO

FOO,酒吧

FOO

我尝试使用嵌套的for循环将它们分开,但它在打开之前只打印了大约20次相同的东西

此外,我是否必须将对象的实例放入数组中才能使其正常工作,还是有另一种更简单的方法吗?

1 个答案:

答案 0 :(得分:0)

那是因为var def = new Abc("foo", ["foo", "bar"]);定义了这样的对象:

def: {
    foo: "foo",
    bar: ["foo", "bar"]
}

如果您希望它在不同的行上打印def.bar的内容,则可以:

  • bar的{​​{1}}部分拆分为一个字符串而不是数组;或
  • 修改你的函数以理解bar可以是一个字符串数组。