簡體   English   中英

如果表格行,我將如何隱藏它<td>元素沒有兩個類之一?

[英]How would I hide a table row if its <td> elements don't have one of two classes?

我需要隱藏特定表中的所有行,其 td 元素不包含兩個類之一。

如果一行中至少有一個 td 元素包含這兩個類之一,則不要隱藏它。 否則,隱藏整行。

class='class1'  
class='class2'  
id='mytable'

有任何想法嗎?

如果沒有示例,很難確切地知道您在尋找什么,但也許這樣的事情會起作用(空氣代碼):

$('#mytable tr').each(function() {
    var count = $('td.class1, td.class2', $(this)).length;
    if (!count) {
        $(this).hide();
    }
});

您可以使用這種方法,也許它不是最短的方法,但希望可以清楚地遵循。 在 jQuery 中查找 find、hasClass、eq 方法以了解更多信息。

var trs = $("table tr")

for( var i = 0; i < trs.length; i++) {
    var tds = $(trs.eq(i)).find("td");
  var trToKeep = true;
  for (var j = 0; j < tds.length; j++) {
    if (tds.eq(j).hasClass("x") || tds.eq(j).hasClass("y")){
        trToKeep = true;
      break;
    }
    else {
        trToKeep = false;
    }
  }
  if (trToKeep === false) {
  trs.eq(i).hide();
  } 
}

工作 jsFiddle 在這里(您要查找的類是 x 或 y):

https://jsfiddle.net/Turo/aj55q33w/


更新:更新了我的答案,因為您想隱藏沒有課程的課程,而不是有課程的課程。

您可以遍歷行並檢查每個td的類。 我循環並使用數組和標志來決定是顯示還是隱藏。 我也首先隱藏所有內容,然后通過條件檢查顯示它們。

var classNames = ['red', 'green'];
$(document).ready(function() {
  $('table tbody tr').each(function() {
    var show = false;
    $(this).hide();
    $('td', this).each(function() {
      var tdClass = $(this).attr('class');
      if ($.inArray(tdClass, classNames) != -1) {
        show = true;
      }
    });
    if (show) {
      $(this).show();
    }
  });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM