2014-02-09 37 views
0

這是我的Jquery的時刻:如何簡化這個Jquery解決方案?

$("button").click(function() { 
    var counter = 1 
    $("tr td:nth-child(2)").text(counter); 
    click ++; 

}); 

而不是使用;

$"(tr td:nth-child(2)").text(counter); 

我想用.slice(),以避免不得不這樣做:

$("tr td:nth-child(2)").text(counter); 
$("tr td:nth-child(4)").text(counter); 
$("tr td:nth-child(6)").text(counter); 
$("tr td:nth-child(8)").text(counter); 

或者,如果有一個更好的解決方案我很感激這一點。謝謝。

+5

如果你想設置所有evens的文本,只需使用'2n'而不是'2'。這段代碼應該做什麼? – Blender

+0

你想計算每個元素的點擊次數嗎? –

+0

@Blender我得到了一個玩家名字的計數器,他們的名字旁邊有一個表示0的計數器。當我點擊按鈕時,我想讓計數器爲1,2,3等等。在每個tr中有8個td,我想要選擇2,4,6和8,以便每個單擊內容中的文本都會發生變化。 –

回答

0

只是迭代元素。

$("tr td").each(function (index, element) { 
    if (index % 2 === 0) { // if you want to check for evens 
     element.text(index); 
    } 
}) 
+1

我不明白什麼(索引,元素)完全確切,索引%?謹慎解釋? –

+0

%是模數 - 如果'index%2 == 0',那麼它是一個偶數(索引/ 2 =沒有餘數的整數)。 '(index,element)'是傳遞給函數的參數,'index'是循環中特定元素的數字索引,'element'是元素本身 – casraf

+0

@ChenAsraf嗯..好吧我得看看它更多的是要完全理解它,謝謝。 –

1

嘗試了jQuery :even selector

$('tr td:even').text(counter); 

如果你想從索引2(而不是0)開始,使用:

$('tr td:even:not(:first)').text(counter); 

DEMO

+0

,它改變了玩家td的文本而不是計數器td的文本。不知道爲什麼.. –

+0

@DuploW因爲'even'是指索引,它將是0,2,4 ...等等(實際上意味着第一,第三,第五元素)。你可能想使用'$('tr td:odd')' – tewathia

+0

@Ow那個工作,真棒:) –