Div未被创建

时间:2014-01-28 19:19:53

标签: javascript html handlebars.js mustache

我正在将现有代码转换为模板代码,因为它更清晰,我使用Mustache作为我选择的模板引擎。我无法使下面的代码工作我已经包含旧的工作代码和新的Mustache代码。问题是div根本没有被创建,它只是在< div中放置DealerInfo

这是转换后的代码:

for(i=0; i< markers.length; i++) {
    var testContent = Mustache.render("<div class='{{info_content}}'><h3>{{dealerName}}</h3>" +
                                      "<p>{{address}}<br/>{{city}}, {{state}} {{zip}}<br/>" +
                                      "<a href='{{href}}'>{{hrefTitle}}</a></p></div>", {
        info_content: "info_content",
        dealerName: markers[i][3],
        address: markers[i][2],
        city: markers[i][4],
        state: markers[i][5],
        zip: markers[i][8],
        href: markers[i][6]
    });

    infoWindowContent.push(testContent);
}

这是旧代码:

for(i=0; i< markers.length; i++) {
    var testContent = ['<div class="info_content">' + '<h3>' + markers[i][3] + '</h3>' + '<p>' + markers[i][2] + '<BR />' + markers[i][4] + ', ' + markers[i][5] + ' ' + markers[i][8] + '</p>' + '<BR /> <a href="' + markers[i][6] +'">' + markers[i][6] +'</a>' +'</div>'];
    infoWindowContent.push(testContent);
}

这就是我将信息输出到div中的方式:

document.getElementById("DealerInfo").innerHTML=infoWindowContent[i][0];

2 个答案:

答案 0 :(得分:1)

你的问题是:

   document.getElementById("DealerInfo").innerHTML=infoWindowContent[i][0];

在新代码中,您正在创建一个字符串数组,因此infoWindowContent[i][0]为您提供通过Mustache.render创建的字符串中的第一个字符

  document.getElementById("DealerInfo").innerHTML=infoWindowContent[i];

应该做的伎俩。 顺便说一下,你可以将一个数组传递给Mustache并让它遍历项目。

答案 1 :(得分:0)

我不知道这是否能解决您的问题,但我首先将您的字符串模板放入变量,将数据放入变量,然后在那些上调用Mustache.render函数。我怀疑你送给胡子的乱七八糟的东西是以某种方式被抬起来的。