我正在将现有代码转换为模板代码,因为它更清晰,我使用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];
答案 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函数。我怀疑你送给胡子的乱七八糟的东西是以某种方式被抬起来的。