2012-01-28 12 views
6

私はテーブルの列を通過すると私はそれが最後の列は、私は別の何かをしたい場合は、次のコードがあります。今そのハードコードされたが、どのように私はあなたが物事を行いたい場合は、各jqueryの最後の反復を取得

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

を使用することができ、あなたが望むすべてが最後の列がある場合、それは自動的にその最後の列

$(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

をので、「TD」のタグがすべての行に使用されている、あなたは非常に最後のTD、または各行の最後のTDをしたいですか? – loganfsmyth

+0

私はグーグルからタイトル質問への答えを探していました。これはOPに必要なものよりも一般的です...どのように$ .each(what、function(...)の最後の繰り返しかを知る方法){...}); 'something'が配列ではなくオブジェクトの場合は? –

答えて

10

あなたは.each()コールバック内部の長さにアクセスしたい場合は、その後は、それはあなたのスコープで利用できるように事前に長さを取得する必要があります。あなたの目的は、値のカンマ区切りのリストを作ることであるように

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

var total = $(これ).find( 'td')。length; – Autolycus

+1

@Autolycus - ただし、セレクタを他の用途に使用する必要がある場合は、そのすべてを再計算する必要はありません。jQueryオブジェクトを複数回使用できるように保存することもできます。 – jfriend00

-2

を知っているので、変更することができます他の列で、あなたはそれに慣れている場合は、代わりにaddclass()data()を使用することができます

$(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 
    } 
}); 

のために行きます。

あなたがしたいすべてがあなたの文字列の末尾にカンマを持っていない場合は、あなただけ後でそれを切り落とすことができます:

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

に見え、なぜあなたは値を収集し、アレイ法を使用しない「に参加」?

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

このような何かがそれを実行する必要があります。

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

最後に 'index === size-1'となります。 – jeremy

関連する問題