我想将一个对象作为参数传递给字符串内的 Onclick 函数。类似以下内容:
function myfunction(obj,parentobj){
var o=document.createElement("div");
o.innerHTML='<input type="button" onclick="somelistener(' + obj + ')" />';
parentobj.appendChild(o.firstChild);
}
显然,这是行不通的。有人知道吗?谢谢!
如@Austin 所建议的更完整的版本
<!DOCTYPE html>
<html>
<body>
<style type="text/css">
</style>
<p id="test">test</p>
<p id="objectid"></p>
<script>
function test(s){
document.getElementById("test").innerHTML+=s;
}
function somelistener(obj){
test(obj.id);
}
function myfunction(obj,parentobj){
var o=document.createElement("div");
o.innerHTML='<input type="button" onclick="somelistener(' + obj + ')" />';
o.onclick = function () {
someListener(obj)
}
parentobj.appendChild(o.firstChild);
}
myfunction(document.getElementById("objectid"),document.getElementById("test"));
</script>
</body>
</html>
最佳答案
上面的示例不起作用,因为 obj
到文本的输出是 [Object object]
,所以本质上,您正在调用 someListener([Object object ])
.
当您在 o
中拥有该元素的实例时,使用 javascript 绑定(bind)到它的点击:
function myfunction(obj,parentobj){
var o=document.createElement("div");
o.innerHTML='<input type="button" />';
o.onClick = function () {
someListener(obj)
}
parentobj.appendChild(o.firstChild);
}
我在这里为您创建了一个可用的 fiddle :JSFiddle
关于javascript:将对象作为参数传递给字符串内的onclick函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12109811/