javascript - 将 JavaScript 数组打印到 HTML,方括号和引号完好无损

标签 javascript html

我想用值数组设置输入表单的属性(用于自动完成搜索)。我有一个 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) );

关于javascript - 将 JavaScript 数组打印到 HTML,方括号和引号完好无损,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9871090/

相关文章:

html - 未应用新制作的 CSS 类

jquery - 在 jstree 节点文本和滚动条之间添加间隙

javascript - Flask 在不同项目运行时加载相同的 index.js 文件

javascript - 去抖动

javascript - 谷歌关闭 : How do I setVisible on an Element

javascript - HTML Jquery .toggle 不切换回来

html - 带有换行文本的内联元素,虽然没有 float 但垂直对齐

javascript - 如何使用原型(prototype)的观察注册 div 内的每次点击

javascript - JavaScript 中的快速 nextafter 函数

html - 如何让td/th标签固定宽度?