2017-06-08 104 views
0

我通過論壇檢查,但沒有找到解決我的問題。我在基於img src值的元素上添加一個類。如果img src包含'amazon',則將一個類添加到最接近的li元素中,並基於該li元素來更改跨度的文本。直到這裏一切都很好,在此之後,我想更改其父li元素沒有該類名稱的跨度文本。我找不出解決方案。這是我的代碼。使用基於父元素類的jquery更改跨度文本

<script> 
jQuery(document).ready(function(){ 
    var select = 'img[src*="images-amazon.com"]'; 
    jQuery(select).closest("li").addClass("sac-amazon"); 

    var cls = jQuery("li.sac-amazon"); 
    var currency = jQuery("span.woocommerce-Price-currencySymbol"); 

    if(cls){ 
     currency.text("US $"); 
    }else if(!cls){ 
     currency.text("SG $"); 
    } 

}); 
</script> 
+0

您需要使用'hasClass()' 。你需要檢查'if(cls.hasClass('CLASSNAME'){}' –

+0

@MilanChheda ... thanx的回覆。我已經嘗試過,但沒有得到我正在尋找的東西。satpal的解決方案爲我工作。 – Sachin

回答

2

我想改變跨度其父李元素中的文本不具有的類名

你只需要定位的子跨度。使用:not() selector目標li不具有類,然後使用descendant selector

jQuery("li.sac-amazon span.woocommerce-Price-currencySymbol").text("US $"); 
jQuery("li:not(.sac-amazon) span.woocommerce-Price-currencySymbol").text("SG $"); 
+0

@satpal ... thanx男人,你的建議做的工作.. – Sachin

1

試試這個(更換「新文本」與您所選擇的字符串):

jQuery('ul li').each(function(){ 
    var t = jQuery(this); 
    if(!t.hasClass('sac-amazon')){ 
    t.text('New text'); 
    } 
}); 
+1

@nimsrules ... thanx的答覆... satpal的解決方案爲我工作。thanx再次 – Sachin