参数列表后javascript'缺失'的错误“

时间:2016-04-13 20:22:24

标签: javascript html

我正在尝试将变量传递给javascript函数,但我在参数列表后面有“Javascript错误:'缺失'”

html = html + '<a href="javascript:initMap2(' + name.lat +','+ name.lng +','+ name.name +');">' + 'Lugar:  ' +name.name +'  Coordenadas: Lat '+ name.lat +'  Lng'+ name.lng+ '</a><br>';

看起来我没有错过任何')。

2 个答案:

答案 0 :(得分:0)

我假设你的最后一个参数应该是一个字符串,但它被解析为看起来像一个变量。试试这个:

html = html + '<a href="javascript:initMap2(' + name.lat +','+ name.lng +',\''+ name.name +'\');">' // etc.

name.name解析为字符串时,它将按预期包装在单引号中。它看起来像javascript:initMap2(1, 2, 'someString')

答案 1 :(得分:0)

我发现你找到了解决方案,但无论如何这里都是替代方案,这会减少你的字符串连接。还有更好的方法可以实现这一目标,但这可能会帮助您开始看到通过字符串连接摆脱构建HMTL的好处。

<meta charset="UTF-8">
<span id="spanTest"></span>
<script>
    // Or whatever your initMap2 function does...
    function initMap2(lat, lng, name) {
        console.log('Lat: ' + lat);
        console.log('Lng: ' + lng);
        console.log('Name: ' + name);
    }

    var spanTest = document.getElementById('spanTest');
    var worldLocation = { name:"test", lat:98.5, lng:-88.45 };
    var anchor = document.createElement('a');
    anchor.href = 'javascript:initMap2(' + worldLocation.lat +', ' + worldLocation.lng + ', \'' + worldLocation.name + '\');';
    anchor.innerHTML = 'Name: ' + worldLocation.name + ', Lat: ' + worldLocation.lat + ' Lng: ' + worldLocation.lng;
    spanTest.appendChild(anchor);
</script>