2012-01-28 26 views
6

Aşağıdaki kodları tablo sütunlarından geçiyorum ve son sütunu ise farklı bir şey yapmak istiyorum. Şu anda onun sert kodlu ama nasıl Bir şeyler yapmak istiyorsanızJQuery'deki son yinelemeyi al her

$(this).find('td:last') 

kullanabilirsiniz, istediğiniz tüm son sütun ise otomatik son sütunu

$(this).find('td').each(function (i) { 
    if(i > 0) //this one is fine..first column 
    { 
     if(i < 4) // hard coded..I want this to change 
     { 
      storageVAR += $(this).find('.'+classTD).val()+','; 
     } 
     else 
     { 
      storageVAR += $(this).find('.'+classTD).val(); 
     } 
    } 
}); 
+1

Yani, 'td' etiketleri en son td veya her satırda en son td istiyorsun, her satırda kullanılır? – loganfsmyth

+0

Burada OP'den neye ihtiyaç duyduğundan daha genel olan başlık sorununun cevabını aramak için google'dan geldim ... Peki, hangisinin $ .each (bir şey, işlev (...) {...}); bir şey bir dizi yerine bir nesne olduğunda –

cevap

10

Eğer .each() callback'inde içindeki uzunluğuna erişmek istiyorsanız, o zaman Uzunluğunu önceden almanız gerekiyor, bu yüzden sizin alanınızda kullanılabilir. Bu sizin objektif benziyor

var cells = $(this).find('td'); 
var length = cells.length; 
cells.each(function(i) { 
    // you can refer to length now 
}); 
+0

var total = $ (this) .find ('td'). – Autolycus

+1

@Outolycus - ama diğer kullanımlar için seçiciye ihtiyaç duyduğunuzda, jQuery nesnesini bir kereden fazla kullanabilmeniz için kaydetmeniz gereken bir şey yoktur. – jfriend00

-2

anlasın değiştirebilir Yanında rahatsızlık duymuyorsanız data() yerine addclass() kullanabilirsiniz

$(this).find('td:last').addClass("last"); 
$(this).find('td').each(function() { 
    if ($(this).hasClass("last")) { 
     // this is the last column 
    } else { 
     // this isn't the last column 
    } 
}); 

diğer sütunlar, git.

Eğer siz dize sonuna virgül sahip değildir yapmak isteyen tüm, sadece sonradan Kesmemiz olabilir:

storageVAR = storageVAR.substr(0, (storageVAR.length - 1); 
6

virgül değerleri toplamak ve dizi yöntemi kullanmak niye, 'katılmak' değerlerin ayrılmış listesi yapmaktır? Böyle

var values = [] 
$(this).find('td .' + classTD).each(function(i) { 
    if (i > 0) values.push($(this).val()); 
}); 
storageVAR = values.join(','); 
1

şey yapmalı:

var $this = $(this), 
    size = $this.size(); 

$this.find('td').each(function (index) { 

    // FIRST 
    if(index == 0) 
    { 

    } 
    // LAST 
    else if(index == size) 
    { 

    } 
    // ALL THE OTHERS 
    else 
    { 

    } 

}); 
+1

Son endeks === size-1' olacaktır. – jeremy

İlgili konular