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

Pass dynamic string value to function

本文关键字:函数 值传 动态 字符串      更新时间:2023-09-26

我有一个名字数组和超过100个地理坐标。我正在动态地创建一个附加的HTML表,其中包含5个最接近指定地址的坐标。我想根据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;                  
    }

您需要在字符串周围添加引号,否则它们将被视为变量。

tbody += '<a href=#'+city.name+' onclick=showRouteB("'+city.name+'")>' +city.name+ '</a>';

Levi的回答帮助了我,但是解决方案是值数组,例如Charles Street, Smith Ave和Vanburen Lane包含需要%20的空格。当值被传递给函数时,它被解释为"showRouteB('Smith ')",并且由于缺少"')"而创建了逻辑语法错误。为了找到问题,我不得不从值数组中删除空白。李维,谢谢你的回复!