在所有行中搜索特定数据属性。如果存在,则隐藏其他行

问题描述 投票:1回答:1

我有一张桌子。每行都有一个data-date属性。如果其中一行的值为“Training Day”,我想删除表中的所有其他行(隐藏它们)。

var table_a = $("table#day_1_ch_dis tbody tr").filter(function() {
  return $(this).data("date") == "Training Day";
});

if (table_a.length > 0) {
  $("table#day_1_ch_dis tbody tr:not([data-date='Training Day']").hide();
}

此代码到目前为止有效。我唯一担心的是它是否尽可能干净。我猜不是。这个编码的最佳方法是什么?

谢谢

jquery
1个回答
2
投票

你可能不需要filter()

if ($("#day_1_ch_dis tr[data-date='Training Day']").length) {
  $("#day_1_ch_dis tr:not([data-date='Training Day'])").hide();
}

或使用siblings()

$("#day_1_ch_dis tr[data-date='Training Day']")
  .siblings(":not([data-date='Training Day'])")
  .hide()
© www.soinside.com 2019 - 2024. All rights reserved.