javascript中的字符串连接

时间:2013-07-26 12:04:40

标签: javascript

<script type="text/javascript">
function Msg1(){
var a="noida";
id=1;
  document.getElementById('myText').innerHTML = '<p onclick="nice(id)">'+a+'</p>';
}
function Msg2(){
  document.getElementById('myText').innerHTML = 'Try message 1 again...';
}
</script>
<input type="button" onclick="Msg1()" value="Show Message 1" />
<input type="button"  onclick="Msg2()" value="Show Message 2" />
<p id="myText"></p>

当我点击显示消息1时,它发送id作为一个字符而不是1我想发送给我1 感谢

3 个答案:

答案 0 :(得分:4)

您可以执行以下操作:

'<p onclick="nice(\"' + id + '\")">'+a+'</p>';

或者:

'<p onclick="nice(' + escape(JSON.stringify(id)) + ')">'+a+'</p>';

但这很快变得非常难以理解。

使用此方法,您无法发送不易序列化的内容。更强大且更具参与性的解决方案将使用DOM API和EventListener API。

示例:

var id = { foo: "bar" };
var p = document.createElement("p");
p.addEventListener("click", function () {
    nice(id);
});
p.innerText = "ipsum lorem";
document.body.appendChild(p);

答案 1 :(得分:0)

您已经在您需要的地方附近连接:

'<p onclick="nice('+id+')">'+a+'</p>';

答案 2 :(得分:0)

将您的innerHTML设为

'<p onclick="nice(\"' + id + '\")">'+a+'</p>'

替换 Msg1()Javascript函数,如下所示

function Msg1(){
   var a="noida";
   var id = 1;
   document.getElementById('myText').innerHTML = '<p onclick="nice(\"' + id + '\")">'+a+'</p>';
}