2016-09-05 11 views
0

我創建了函數來查找包含數字的列,然後在代碼找到空列之前向它們和下一列添加類。我也想添加類到下面的列(下一行,但同一索引的列),但我無法解決它。我試過.parent()方法,但我堅持,我不知道我在做什麼,說實話......這是我的代碼jQuery:添加類到兄弟行同一索引的列

$("table tbody tr td").each(function() { 
    var num = $(this).text(); 
    if ($.isNumeric(num)) { 
     $(this).addClass('word-' + num).nextUntil('td:empty').addClass('column-' + num); 
    } 
    }); 

而這裏的圖像顯示什麼,我想做(紅色領域)。 enter image description here

對不起,我的英語。

JS Fiddle

var indexed = $(this).index() + 1; // Get column number 
var row = $('tr').has(this); // Current row 
row.nextAll('tr').each(function(e) { 
    var cell = $(this).find('td:nth-child(' + indexed + ')'); 

    if(cell.text().length) { 
     cell.addClass('word-' + num); 
    } else { 
     return false; // End loop if word is finished 
    } 

}); 

獎金

如果你想風格在那裏的話相交(有兩個類附:

+0

你能否提供你的html,並可能手動添加一個附表來顯示你想要的最終結果?現在的問題是,它很難理解你希望達到的目標。 –

+0

這裏是我的jsfiddle: https://jsfiddle.net/5yzLftu0/ 例如,數字1有class-1,並且相同的類被添加到同一行中的下一個td。但我不知道如何添加例如單詞3類到te td下面的數字3.你現在明白了嗎? – user3043693

回答

1

在您if聲明,你可以沿着線添加的東西以「word-」開頭,您可以執行如下操作:

/* Intersection */ 
[class^='word-'][class*=' word-'] { 
    font-weight: bold; 
    background: grey; 
    color: white; 
} 
0

大,這就是我想要的:)

$("td").each(function() { 
    var num = $(this).text(); 
    if ($.isNumeric(num)) { 
     $(this).addClass('word-' + num).nextUntil('td:empty').addClass('word-' + num); 
     var indexed = $(this).index() + 1; 
     var row = $('tr').has(this); 
     row.nextAll('tr').each(function() { 
     var cell = $(this).find('td:nth-child(' + indexed + ')'); 
     if (cell.text().length) { 
      if (cell.find("[class*=word-]")) { 
      cell.attr('vertical', 'word-' + num); 
      cell.addClass('word-' + num); 
      } else { 
      cell.addClass('word-' + num); 
      } 
     } else { 
      return false; 
     } 
     }); 
    } 
    }); 

我想補充「垂直」屬性,在列,這已經有水平一流,我在做它好還是錯?