<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 感谢
答案 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>';
}