我想将一个对象作为参数传递给字符串中的Onclick函数.像下面这样的东西:
function myfunction(obj,parentobj){
var o=document.createElement("div");
o.innerHTML='';
parentobj.appendChild(o.firstChild);
}
显然,这不起作用.任何人有任何想法?谢谢!
一个更完整的版本,正如@Austin所建议的那样
test
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='';
o.onclick = function () {
someListener(obj)
}
parentobj.appendChild(o.firstChild);
}
myfunction(document.getElementById("objectid"),document.getElementById("test"));
解决方法:
上面的例子不起作用,因为obj到text的输出是[Object object],所以基本上你调用someListener([Object object]).
当你在o中有元素的实例时,使用javascript绑定它的单击:
function myfunction(obj,parentobj){
var o=document.createElement("div");
o.innerHTML='';
o.onClick = function () {
someListener(obj)
}
parentobj.appendChild(o.firstChild);
}
我在这里为你创造了一个工作小提琴:JSFiddle
标签:argument-passing,javascript
来源: https://codeday.me/bug/20191005/1855608.html