我是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>
&#13;
答案 0 :(得分:1)
class
中不需要$("class.bundled_product_images")
这个词:
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>
正如Neville在评论中指出的那样,你不能在任何一个元素中有两个class
定义,但你可以将它们组合起来。
答案 1 :(得分:0)
您可以直接使用
$(".bundled_product_images img").removeClass("image zoom");
你不需要上课。点表示一个类,在单词表示元素之前没有符号(在本例中为img),img
之前的空格表示img
在具有bundled_product_images类的元素内。根据您的标题,如果您想要使用类显式查找DIV元素,请使用:
$("div.bundled_product_images img").removeClass("image zoom");
答案 2 :(得分:0)
使用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的结果感到有些惊讶。