2017-08-23 5 views
0

Im new to JQuery。私は、そのイメージが別の特定のクラスを持つdivにある場合にのみイメージクラスを削除する方法を理解しようとしています。ここに私がこれまで持っていたものがあります。どんな助けも非常に高く評価されるでしょう。ありがとう。JQueryは、クラスbの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>

+1

あなたは2つのクラス属性を持つことはできません。このように4つのスペースをすべて別のクラスにズームすることができます –

答えて

1

あなたは$("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>

とネビルはコメントで述べたように、あなたがすることはできませんいずれか1つの要素内に2つのclass定義あなたはそれらを組み合わせることができます。

+0

匿名downvoterはコメントしますか? – j08691

+0

それは私だった、私はupvoted、その後私は下の答えで投稿した私のjsPerfのテストケースのために私のupvoteを削除しました。あなたの答えは受け入れられ、確かに動作しますが、 'hasClass()'を使うよりも遅く実行されるようです。あなたの答えに対する何も、私が1つを投稿した唯一の理由は、jsPerfテストによるものです。 – AndyWarren

+0

@AndyWarrenまあ、コメントありがとう、私の答えがdownvoteを正当化しているかどうかはわかりませんが。 downvotesのツールチップは "この答えは役に立たない"と言っているので、私は同意するかどうか分からない。プラス、なぜ私をdownvote? – j08691

0

あなたは直接あなたがクラスを必要としない

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

を使用することができます。ドットはクラスを表し、単語が要素(この場合はimg)を表し、imgの前の空白はimgがbundled_product_imagesクラスの要素内にあることを表します。あなたが明示的にクラス、使用してDIV要素を探したい場合はタイトルどおり、:

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

jQueryを使ってこれを行うには、複数の方法があります。 @ j08691と@ Neville-Nazeraneはどちらも機能する可能性のあるソリューションを掲載しましたが、jQueryを使用して表示されるのはhasClass()です。ここには、現在の回答が3つ表示されます(hasClass()を含む):https://jsperf.com/jquery-remove-class-has-class-awそのリンクに移動し、[Run test]をクリックします。ここで

hasClass()例です:

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

私はjsPerf結果によって多少驚いている、と言うだろう。

+1

私はテストを続けた。事実、あなたと@ j08691のコードの間で最も速い変換が行われます。 –

+0

私は単にhasClass()が最も速いと信じられなかったので、15回走らなければなりませんでした。それがChromeまたはFirefoxで勝つために得られる唯一の方法です。 – AndyWarren

関連する問題