[英]How to pass array as parameter in javascript code function?
我正在发送对象数组以打印功能,但无法正常工作。
<script>
var items = [{
"id": "1",
"name": "rishi"
}, {
"id": "2",
"name": "xyz"
}];
var output = "<button type='button' onClick='print(" + items + ")'>Print</button>";
document.getElementsByTagName("body").innerHTML = output;
function print(data) {
alert(data);
}
</script>
<body>
</body>
<script>
var items = [{
"id": "1",
"name": "rishi"
}, {
"id": "2",
"name": "xyz"
}];
var output = "<button type='button' onClick='print(" + items + ")'>Print</button>";
document.getElementsByTagName("body").innerHTML = output;
function print(data) {
alert(data);
}
</script>
<body>
</body>
当我点击打印时,它应该返回数组
getElementsByTagName
返回元素的集合,因此您应该通过索引[0]
访问body元素。
为了查看警报中对象的内容,请尝试使用JSON.stringify
将它们转换为字符串
var items = [{ "id": "1", "name": "rishi" }, { "id": "2", "name": "xyz" }]; items = JSON.stringify(items.map(JSON.stringify)) var output = "<button type='button' onClick='print(" + items + ")'>Print</button>"; document.getElementsByTagName("body")[0].innerHTML = output; function print(data) { alert(data); }
<body> </body>
您的问题与document.getElementsByTagName("body").innerHTML
。 .getElementsByTagName
不返回单个元素,而是返回一个HTMLCollection ,其中包含所有正文标签。 想象一下,如果您将"p"
传递给相同的方法; 可能有多个p
标签,因此您需要取回一个集合,而不仅仅是一个元素。
相反,您可以使用document.querySelector('body')
,该方法将返回<body>
的第一个找到的元素,然后可以在其中使用.innerHTML
。
最后,您需要对items
数组进行字符串化处理,以便在将其传递到print
方法中时保留它
请参见下面的示例:
var items = [{ "id": "1", "name": "rishi" }, { "id": "2", "name": "xyz" }]; var output = "<button type='button' onClick='print("+ JSON.stringify(items) + ")'>Print</button>"; document.querySelector("body").innerHTML = output; function print(data) { console.log(data); alert(data); }
您可能要做的就是使用document.getElementsByTagName("body")[0]
获取getElementsByTagName返回的第一项。
然后调用函数print
传递项目作为参数onClick=print(items)
var items = [{ "id": "1", "name": "rishi" }, { "id": "2", "name": "xyz" }]; var output = "<button type='button' onClick=print(items)>Print</button>"; document.getElementsByTagName("body")[0].innerHTML = output; function print(data) { alert(JSON.stringify(data)); }
尝试
function print(data) { alert(JSON.stringify(data)); }
否则,在这种情况下,您只会得到显示为Object
数据类型
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.