[英]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.