gpt4 book ai didi

jquery - 包含元素的每一行,然后删除该行中的类

转载 作者:行者123 更新时间:2023-12-01 07:06:03 25 4
gpt4 key购买 nike

所以,我有一个表,如果 dt 包含“Quantity”,我会尝试删除“qty-holder”类。我已经尝试了此代码的几种不同变体,但无法使其工作。

$('tr').each(function(){
if ( $('dt:contains("Quantity")').length > 0 ) {
$(this).closest('.qty-holder').css('display','none');
}
})

这是我正在处理的 fiddle 的链接:https://jsfiddle.net/04khega6/

理论上“这个”会选择 tr 并搜索最接近的类 .qty-holder 对吗?为什么这不起作用?

最佳答案

1.看看这个选择器:

$('dt:contains("Quantity")')

请注意,没有引用 this 。上面的选择器将找到任何 dt其中包含 "Quantity" 在整个页面,无论哪个 <tr>它属于。假设您想将其设置为当前的 <tr> ,你想使用 $(this).find()

//Select all <dt> that contain quantity *in the current <tr>*
$(this).find('dt:contains("Quantity")')
<小时/>

2. closest()遍历 DOM 树向上。如果您正在寻找子(或更深)元素,您可以使用 .find() 。此外,.hide().css("display", "none"); 相同

$(this).find('.qty-holder').hide();

虽然你说你正在尝试“删除类(class)”,所以也许你想要:

$(this).find('.qty-holder').removeClass("qty-holder");
<小时/>

总而言之,它看起来像这样:

(顺便说一句,我已将 $(this) 声明为变量 $this 。)

$('tr').each(function() {
var $this = $(this);
if ($this.find('dt:contains("Quantity")').length > 0) {
$this.find('.qty-holder').hide();
}
})

JSfiddle

<小时/>

综上所述,您不需要 each完全循环。稍微更深入的选择器可以很容易地执行此操作。然而,当我输入此内容时,Adeneo posted an answer这承认了这一点。

关于jquery - 包含元素的每一行,然后删除该行中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45175681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com