函数将字符串视为单个值而不是解析

时间:2011-04-17 18:17:31

标签: javascript jquery

我正在使用一个标签插件,可以接受这样的输入:

$(this).tagHandler({
   assignedTags: [ 'test','from','reddit' ]
});

但是,如果我创建一个名为tags的变量,它是一个字符串:

tags = "'test','from','reddit'";

并尝试在它被视为单个字符串的函数中使用它。

$(this).tagHandler({
   assignedTags: [ tags ]
});

不是通过函数处理,而是以“test”,“from”,“reddit”作为单个标记结束。

我感觉这是一个常见的问题,但没有找到合适的搜索词来识别解决方案。

4 个答案:

答案 0 :(得分:2)

您需要提供一个数组 - 您创建的字符串不会自动转换为一个数组:

var tags = ['test', 'from', 'reddit'];
$(this).tagHandler({
   assignedTags: tags
});

如果您拥有的只是一个字符串,请尝试:

var str = 'test,from,reddit';
var tags = str.split(',');
$(this).tagHandler({
   assignedTags: tags
});

答案 1 :(得分:0)

使用数组可能有用。

tags = new Array('test','from','reddit');
$(this).tagHandler({
   assignedTags: tags
});

答案 2 :(得分:0)

那是因为这是

 [ 'test','from','reddit' ]

是一个数组

以及你在将数据放入数组时所做的工作

你想要的是制作一个数组

 var tags = ['test','from','reddit'];

然后添加

$(this).tagHandler({
    assignedTags: tags 
 });

答案 3 :(得分:0)

我不确定为什么你希望解析字符串,插件是否表明它会这样做?我的猜测是以下可能有效:

$(this).tagHandler({
   assignedTags: [ tags.split(',') ]
});`