JQuery 删除图像类 a,如果在 div 中与类 b 在一起



我是JQuery的新手。我试图弄清楚如何使用它来删除图像类,前提是该图像位于具有不同特定类的div 中。这是我到目前为止所拥有的。任何帮助将不胜感激。谢谢。

jQuery(document).ready(function($) {
$("class.bundled_product_images").find("img").removeClass("image zoom");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="bundled_product_images">
<figure class="bundled_product_image woocommerce-product-gallery__image">
<img src="x" class="image zoom" class="another class">
</figure>
</div>

你不需要$("class.bundled_product_images")中的单词class

jQuery(document).ready(function($) {
$(".bundled_product_images").find("img").removeClass("image zoom");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="bundled_product_images">
<figure class="bundled_product_image woocommerce-product-gallery__image">
<img src="x" class="image zoom another class">
</figure>
</div>

正如内维尔在评论中指出的那样,你不能在任何一个元素中有两个class定义,但你可以将它们组合在一起。

你可以直接使用

$(".bundled_product_images img").removeClass("image zoom");

你不需要上课。点表示一个类,单词前面没有符号表示元素(在本例中为 img(,img之前的空格表示img在元素内具有bundled_product_images类。根据您的标题,如果要在类中显式查找 DIV 元素,请使用:

$("div.bundled_product_images img").removeClass("image zoom");

有多种方法可以使用jQuery执行此操作。 @j08691和@Neville-Nazerane都发布了可能有效的解决方案,但似乎使用jQuery实际上执行速度更快hasClass()。这是一个测试,显示了三个当前答案,包括这个带有hasClass()的答案: https://jsperf.com/jquery-remove-class-has-class-aw 只需转到该链接并单击"运行测试"。

下面是一个hasClass()示例:

jQuery(document).ready(function($) {
if (('*').hasClass('bundled_product_images')) {
jQuery(this).find("img").removeClass("image zoom");
}
});

我会说,我对jsPerf的结果有些惊讶。

最新更新