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 に答える