簡體   English   中英

確定jQuery數組中的項目數並遍歷它們?

[英]Determine # of items in jQuery array and loop through them?

我有一個AJAX腳本,該腳本從PHP返回的mySQL查詢中接收字符串。 然后,將這個字符串解析並放入Jquery中的數組中,然后使用.html()將結果打印到屏幕上

該數組的長度從0項到很多項不等,我如何計算數組中的項,然后遍歷並打印到屏幕上。

盡管我仍然不確定for循環是在.html()函數內部還是外部,但這是根據以下建議的更新代碼。

包含.each()的更新代碼

更新2: .html()函數中的(this)替換為我要寫入文本的元素,它可以部分工作,問題是現在它僅打印數組中的最后一項嗎?

更新3:似乎只能運行一個.html()函數,例如,如果我在返回數組最后一項的語句下添加另一個.html()語句,則現在僅在屏幕上回顯測試值。

$("#n_detail").html(partsArray[index]+"<br />").addClass('jText').fadeTo(900,1);
$("#n_detail").html("Test").addClass('jText').fadeTo(900,1);    

它只會打印“ Test”,而不是以前的數組中的最后一項?

<script type="text/javascript">
       $(document).ready(function() {
        $("#primary").change(function()
            {                                
             $.post("lib/ajax_load_job_detail.php",{ _primaryid_n:$(this).val() } ,function(data)
            {
            var string = data;
            var partsArray = string.split('|');
               $("#n_detail").fadeTo(200,0.1,function() //start fading the messagebox
               {
                 $.each(partsArray, function(index) {
                        $("#n_detail").html(partsArray[index]+"<br />").addClass('jText').fadeTo(900,1);
                    });     
                });
              });
            });
           });

數組partsArray [0] 12/12/2005,partsArray [1]的樣本值這是12月的樣本注釋,依此類推...

partsArray.length

將為您提供數組中的項目。 您可以使用

for(var i=0;i<partsArray.length;i++){

或使用jQuery插件

$.forEach

這是一個典型的循環結構:

var partsArray = string.split('|');
for(var x=0;x<partsArray.length;x++) {
    //...your code ...
    //x is the index., so partsArray[x] is the current element
}

如果要遍歷數組,則可以使用jQuery函數each()。

這是文檔的鏈接: http : //api.jquery.com/jQuery.each/

這是使用您的數組的文檔示例:

$.each(partsArray, function(index, value) { 
  alert(index + ': ' + value); 
});

編輯 -根據OP添加到另一個答案的注釋,這是使用OP代碼的更好示例:

$.each(partsArray, function(index, value) { 
  value.addClass('jText').fadeTo(900,1);
});

編輯2-您需要代碼的一部分是循環中arry的每個元素,並根據您的編輯,我認為它應如下所示:

$.each(partsArray, function(index) {
    $(this).append(partsArray[index]+"br />").addClass('jText').fadeTo(900,1);
}

干杯,

詹姆士

for ... in ,它比jQuery的$.each方法快得多,並且沒有太大區別-它為您提供i項目的索引,而不是值。

for (var i in partsArray)
{
    // You can access values via...
    console.log( partsArray[i] );

    // Alternatively, this will make it an exact clone of $.each
    var value = partsArray[i];
    console.log( value );
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM