2011-10-25 14 views
0

jqueryの空間では初心者ですが、Stackoverflowを通して多くのことを学びたいと考えています。配列内のjqueryオブジェクトをループして希望の結果を表示する方法は?

私は、ユーザーが複数の値をチェックボックスに入れることを可能にする選択肢データ型を持つSharepoint 2010リストデータ項目を持っています。私はSPServiceを使ってリストアイテムを取得しています。以下はコードです

$().SPServices({ 
        webURL: 'http://abc.def.com/Products', 
        operation: 'GetListItems', 
        listName: listName, 
        async: false, 
        CAMLQuery: query, 
        CAMLViewFields: fields, 
        CAMLRowLimit: 11, 

        completefunc: 
        function (xData, Status) 
    {  $(xData.responseXML).find("[nodeName=z:row]").each(function() 

    { 
      $("#ProdList").val("-1");//Pre-filled with selected val. 
      var myProd= $(this).attr("ows_Prod"); //displays in this format ;#myProd1;#myProd2;# 

      //Here 1. i want to store myProd as an array. 
       2. eliminate ;# 
       3. store final array elements as myProd1, myProd2 
       4. Display myProd1 
          myProd2 
            in the dropdown list. 
      // 


      $("#ProdList").append('<option>' + myProd+ '</option>'); 
     }); 
    } 

    });  

    }); 

    <body> 
    <select class="Dropdowns" id="ProdList"> 
    <option value="-1">My ProdLists</option> 
    </select> 
    </body> 
    Any pointers? Thanks.   

答えて

1

具体的な内容はわかりにくいです。私はあなたのコードのコメントが質問を記述していると推測しています。次回は、コード内ではなく、テキスト内での質問の詳細をより具体的にすることをお勧めします。しかし、それを考えれば、あなたがやろうとしていることに私の推測があります。

あなたはこのようになります文字列を持っている:あなたは、ドロップダウンリストに追加されている配列から、配列にmyProd1myProd2を取得したいのですが、

";#myProd1;#myProd2;#" 

をと。あなたはこれでソートされた配列からDUPを削除することができ

myProdArray.sort(); 

// get product list 
var myProd = $(this).attr("ows_Prod"); 
// clean up the ends 
myProd = myProd.replace(/^;#|;#$/g, ""); 
// split into pieces 
var myProdArray = myProd.split(";#"); 
// add each piece as an option to the drop-down 
for (var i = 0; i < myProdArray.length; i++) { 
    $("#ProdList").append('<option>' + myProdArray[i] + '</option>') 
} 

あなたが辞書順で配列をソートすることができます

var noDupArray = []; 
noDupArray.push(myProdArray[0]); 
for (var i = 1; i < myProdArray.length; i++) { 
    if (myProdArray[i] != myProdArray[i-1]) { 
     noDupArray.push(myProdArray[i]); 
    } 
} 

をので、あなたは両方のソートしたい場合ダブを削除するには、次のコードを使用します。

var myProd = $(this).attr("ows_Prod"); 
myProd = myProd.replace(/^;#|;#$/g, ""); 
var myProdArray = myProd.split(";#"); 
// sort 
myProdArray.sort(); 
// remove dups 
var noDupArray = []; 
noDupArray.push(myProdArray[0]); 
for (var i = 1; i < myProdArray.length; i++) { 
    if (myProdArray[i] != myProdArray[i-1]) { 
     noDupArray.push(myProdArray[i]); 
    } 
} 
// add each piece as an option to the drop-down 
for (i = 0; i < noDupArray.length; i++) { 
    $("#ProdList").append('<option>' + noDupArray[i] + '</option>') 
} 
+0

ありがとうございました。出来た。私は間違いなく次回の質問の説明にもっと具体的にしようとします。あなたの助けをもう一度ありがとう。 :) – GSGS

+0

上記のコードのドロップダウンリストに重複がないことを確認するにはどうすればよいですか?私はmyProdArrayをソート(ASC)したい。すべてのポインタ?ありがとう。 – GSGS

+0

私の答えに並べ替えと減算が追加されました。 – jfriend00

関連する問題