繁体   English   中英

将JavaScript数组完整打印为HTML,方括号和引号

[英]Print a JavaScript array to HTML, square brackets and quotation marks intact

我想用一个值数组设置输入表单的属性(用于自动完成搜索)。 我有一个看起来像这样的JS数组:

var suggestions = ["value1", "value2", "value3"];

使用jQuery,我做到了:

$("#search-input").attr("data-source", suggestions);

所需的输出:

<input type='search' data-source='["value1", "value2", "value3"]' />

实际输出:

<input type='search' data-source='value1, value2, value3' />

这会破坏自动完成功能,因为它需要一个数组(或者至少是一个看起来像JavaScript数组的东西)。

采用

$("#search-input").data("source", suggestions);

因为这

$("#search-input").attr("data-source", suggestions);

data-source属性值 (即字符串)设置为suggestions.toString()的结果,这当然是

"value1,value2,value3"

FWIW,即使不必要地复杂,这也是正确的:

$("#search-input").attr("data-source", JSON.stringify(suggestions) );

您可以只使用Split()方法创建数组

 suggestions.split(",");

 'value1, value2, value3'.split(","); // ["value1", " value2", " value3"]

一种快速可行的解决方案是

$("#search-input").attr("data-source", JSON.stringify(suggestions));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM