jQuery

2016-03-30 8 views
0

Sınıflarının tam olarak eşleşmesi koşuluyla, php echo deyiminde aşağıda verilen kodu kullanıyorum. Köşeli parantez boş ama CSS işlerini değiştirmek için içine koyduğum bu ifadeyi bir kusurla temin ederim.jQuery

"zoom" veya "zoom zum" seçeneklerine eşit sınıf özelliklerine sahip elemanlar için çalışmasını istiyorum. Maalesef "woo-commerce-main-image zoom" dahil olmak üzere "zoom" sınıfına sahip tüm elemanlar için çalışıyor.

ben "WooCommerce-ana-görüntü" sınıfı ile unsurlarını hariç olabilir, ama bu 2 Belirtilen sınıf ile elementlerin için kodumu uygulayarak, daha temiz bir çözümü tercih ediyorum niteliklerini :

if ($(this).hasClass("zoom") || $(this).hasClass("zoom first")) {} 
+1

$ (this) .attr ("class") === "zoom" || $ (this) .attr ("class") === "zoom önce" – Jorrex

+1

temizleyici çözüm bu fiddle kontrol edin http://jsfiddle.net/ZdNaf/ – pr0metheus

+0

bu yüzden sadece sınıfın tam olarak eşit olup olmadığını kontrol eder Yakınlaştırmak "veya" ilk yakınlaştırma " – Jorrex

cevap

0

aramak istediğiniz takdirde münhasıran "zoom" sınıfa sahip elemanlar veya "zoom" ve "ilk" hem sahiptir elemanları münhasıran, belki aşağıda deneyebilirsiniz:

var search = ["zoom", "zoom first"]; 
 

 
$.each(search, function(i, v) { 
 
    var classes = v.split(' '); 
 

 
    $('.' + classes.join('.')) 
 
    .filter(function() { 
 
     return $(this).attr('class').split(' ').length == classes.length; 
 
    }) 
 
    // Do something here 
 
    .css('background', 'yellow'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="zoom">zoom</div> 
 
<div class="zoom foo">zoom foo</div> 
 
<div class="first zoom">first zoom</div> 
 
<div class="zoom first">zoom first</div> 
 
<div class="zoom foo first">zoom foo first</div> 
 
<div class="zoom first foo">zoom first foo</div>