如何遍历数组中的jquery对象并显示所需的结果?

时间:2011-10-25 03:56:24

标签: jquery sharepoint

我是jquery空间的新手,希望通过Stackoverflow学到很多东西。

我有一个Sharepoint 2010列表数据项,它具有Choice数据类型,允许用户复选多个值。我使用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 个答案:

答案 0 :(得分:1)

要弄清楚问题的具体内容有点困难。我猜你的代码中的注释正在描述这个问题。下次,我建议您在文本中更详细地说明问题的详细信息,而不是代码。但是,考虑到这一点,我猜你正在尝试做什么。

你有一个如下所示的字符串:

";#myProd1;#myProd2;#"

并且,您希望将myProd1myProd2放入数组中,然后从该数组添加到下拉列表中。

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

您可以使用以下字典顺序对数组进行排序:

myProdArray.sort();

您可以使用以下方法从已排序的数组中删除重复:

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>')
}
相关问题