2012-03-26 116 views
1

我想使用值数组设置输入表单的属性(用于自动完成搜索)。我有一个JS数组,看起来有点像这样:将JavaScript数组打印为HTML,方括号和引号不变

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' /> 

这打破了t他自动完成,因为它需要一个数组(至少看起来像一个JavaScript数组)。

回答

3

使用

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

因为这

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

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

"value1,value2,value3" 

FWIW,这将是更正ECT还有,即使不必要的复杂:

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

完美,谢谢! – 2012-03-26 11:43:55

1

一个快速可行的办法是

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

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

suggestions.split(","); 

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