2013-08-19 59 views
0

我目前有此工作代碼:JQuery的循環通過陣列右按鈕

$('#imgX').on('click', function(){ 
    $('table#newspaper-a tr:has(td.X)').toggle(); 
}); 

我的問題是,是否有可能從1-100魔劍的陣列(對於X的值)和環路throught它看到一個按鈕是否被點擊? 因爲每個td上都有一個名稱爲'img1''img2'的按鈕,我希望該按鈕可以使用相同的數字來切換td。

回答

3

你會過得更好添加data-屬性,試圖找出正確的圖像:

HTML

<img src="whatever.jpg" data-idx="1" alt="My Image" /> 
<img src="whatever.jpg" data-idx="2" alt="My Image" /> 
<img src="whatever.jpg" data-idx="3" alt="My Image" /> 
<img src="whatever.jpg" data-idx="4" alt="My Image" /> 
<img src="whatever.jpg" data-idx="5" alt="My Image" /> 
<table id="newspaper-a"> 
    <tr> 
     <td class="td1">1</td> 
     <td class="td2">2</td> 
     <td class="td3">3</td> 
     <td class="td4">4</td> 
     <td class="td5">5</td> 
    </tr> 
</table> 

jQuery的

$('img').on('click', function(){ 
    $('table#newspaper-a tr:has(td.td' + $(this).data("idx") + ')').toggle(); 
}); 

此外,CSS類無法啓動與一個數字,所以你需要在前加上有東西。 Here是演示上述的小提琴。

+0

+1,可能是最乾淨的解決方案。 –

+0

這些按鈕的確對現在正確的響應tds,謝謝!但是這只是用相同的數字來表示tds,我的意思是切換那個td所在的整個行! – BjornBogers

+1

@BjornBogers錯過了這個要求,用你的問題中的選擇器更新了答案 – CodingIntrigue

0

循環遍歷所有的tds不是一個好主意。如果你有1000行或類似的東西呢?我會建議使用這樣的腳本:

$("#yourbutton").on("click", function() { 
    $(this).parent().toggle(); 
}); 

I.e. .parent()選擇按鈕所屬的td。

P.S. 你應該真的嘗試優化你的選擇器。你的看起來有點瘋狂。

+0

我不認爲在OP的情況下'td'是'按鈕'的父母。否則,一旦隱藏,將無法再顯示他們...... –