将动态字符串值传递给函数

时间:2014-06-04 02:20:26

标签: javascript html function dynamic

我有一系列名字和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;                  
    }

2 个答案:

答案 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 ;失踪。我必须从我的数组中删除空格才能找到问题。列维,谢谢你的回复!

相关问题