0

谁能看到我在这里做错了什么?

我正在尝试拆分tag_filter,然后对于每个tag_filter值,我想检查选项值是否已存在于tag_select_dropdown_filter. 如果它不存在,则将选项添加到tag_select_dropdown_filter.

var tag_filter = new1,new2,new3;
var arraylist = tag_filter.Split(",");

jQuery.each(arraylist, function(index, item) {

   if ($('select#tag_select_dropdown_filter option[value="'+item+'"]').length) {
     // it exists
   } else { var o = new Option("option text", item);
     $(o).html("option text");
     $("#tag_select_dropdown_filter").append(o);
   }

});
4

3 回答 3

2

您只能拆分字符串,所以它必须是:

var tag_filter = 'new1,new2,new3';

如果这些实际上是变量,您可以这样做:

var arraylist = [ new1, new2, new3 ];

它应该是string.split()(小写),除非这是您决定不向我们展示的一些自定义功能?

于 2013-01-18T10:21:24.523 回答
1

您的代码中有一些拼写错误/错误:

  • 我认为tag_filter应该这样声明:var tag_filter = 'new1,new2,new3';. 在您的代码中,您只为其分配变量 new1的值。
  • split()开始时较低s
  • 甚至设置了length属性,当之前的查询没有返回结果时。所以检查它是否大于1。

正确的代码可能如下所示:

var tag_filter = 'new1,new2,new3';
var arraylist = tag_filter.split(",");

jQuery.each(arraylist, function(index, item) {

   if ($('select#tag_select_dropdown_filter option[value="'+item+'"]').length > 0) {
     // it exists
   } else { 
     var o = new Option("option text", item);
     $(o).html("option text");
     $("#tag_select_dropdown_filter").append(o);
   }

});

我假设你tag_filter是从代码中的其他地方得到的。如果没有,使用它会更容易:

// if new1 to new3 shall be strings
var array_list = [ 'new1', 'new2', 'new3' ];

// if new1 to new3 are variables
var array_list = [ new1, new2, new3 ];
于 2013-01-18T10:23:49.747 回答
-1

我猜问题是 tag_filer 应该是这样的字符串:

var tag_filter = "new1,new2,new3";
于 2013-01-18T10:22:39.497 回答