我有一系列名字和100多个地理坐标。我正在动态创建一个附加到指定地址的5个最近坐标的HTML表。我想根据5个最近地址列表中的选定地址执行条件语句。我能够将数值传递给支持函数,但字符串值不会传递给函数,这是条件逻辑所必需的。如果我插入值i作为showRouteB()的参数然后该函数将工作,但是当我尝试插入city.name或分配给city.name的变量时,该函数似乎没有被调用。当我在Chrome中检查控制台时,我无法找到任何错误,并且我尝试了几种不同的版本。有没有人看到任何明显的语法或逻辑错误?
我的代码是:
for (i = 0; i < 5; i++) {
city = top101citiesUS[i];
//dynamically load map_table
tbody += '<tr>';
tbody += '<td>';
tbody += '<a href=#'+city.name+' onclick=showRouteB('+city.name+')>' +city.name+ '</a>';
//tbody += city.name + city.lat + ',' + city.lng;
tbody += '</a>';
tbody += '</td>'
tbody += '</tr>';
}
.....我然后追加表头+表体+表页脚
的字符串值 function showRouteB(x){
var element = document.getElementById('ProuteB');
element.innerHTML = "This is the city name " + x;
}
答案 0 :(得分:2)
您需要在字符串周围添加引号,否则将它们视为变量。
tbody += '<a href=#'+city.name+' onclick=showRouteB("'+city.name+'")>' +city.name+ '</a>';
答案 1 :(得分:0)
Levi的答案在我的路上帮助了我,然而决议是像Charles Street,Smith Ave和Vanburen Lane这样的数值范围包含需要%20的空格。当值传递给函数时,它被解释为&#34; showRouteB(&#39; Smith&#34;并且它创建了一个逻辑语法错误,因为&#34;&#39;)&#34 ;失踪。我必须从我的数组中删除空格才能找到问题。列维,谢谢你的回复!