簡體   English   中英

將類添加到沒有類的元素-jQuery

[英]Add class to element that doesn't have class - jQuery

在下table中,只有一個td具有類,另一個不具有類似類:

<table id="bow-me">
  <tr class="row-me">
    <td class="show-me">Pet is Great</td>
    <td>Pete is Greate</td>
  </tr>
</table>

我嘗試了類似的東西:

if(!$("#bow-me tr td").hasClass("show-me")) {
  $(this).addClass("know-me");
}

但這並沒有在我的第二個td添加class 知識

我在這里附上了JSFiddle

如果我只想將Class添加到第二個td ,該怎么辦?

嘗試使用屬性選擇器和:not()獲得<td>而不帶任何類

$('#bow-me tr td:not([class])').addClass('know-me');

或者,如果要指定第一個或第二個<td> ,請使用:eq()

$('#bow-me tr td:eq(1)').addClass('know-me');

文件參考

  1. :不()
  2. 屬性選擇器
  3. .eq()

您可以使用:eq()選擇器:

$('#bow-me tr.row-me td:eq(1)').addClass('know-me');

更新小提琴

.eq()

$('#bow-me tr.row-me td').eq(1).addClass('know-me');

更新小提琴

您的代碼不起作用的原因是

  1. 您的選擇器找到多個td

    $("#bow-me tr td")

  2. 您不能將$(this)用作if條件語句中的選擇器。 它沒有有效的參考。

解決方案:您可以通過each()函數循環匹配的元素,然后設置條件以檢查找到的每個元素- $(this)在這種情況下可以工作

$("#bow-me tr td").each(function() {
  if(! $(this).hasClass("show-me")) {
    $(this).addClass("know-me");
  }
});

這里查看jsFiddle

我給出了這個答案,以解釋您的方法為何行不通。 我更喜歡使用:not()偽選擇器的安東方法。

暫無
暫無

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

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