我想用一组值设置输入表单的属性(用于自动完成搜索)。我有一个看起来像这样的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数组的东西)。
答案 0 :(得分:3)
使用
$("#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) );
答案 1 :(得分:2)
您可以使用Split()
方法创建数组
suggestions.split(",");
'value1, value2, value3'.split(","); // ["value1", " value2", " value3"]
答案 2 :(得分:1)
一个快速可行的解决方案是
$("#search-input").attr("data-source", JSON.stringify(suggestions));