使用基于父元素类的jquery更改跨度文本

时间:2017-06-08 06:06:33

标签: jquery html

我查看了论坛,但没有找到解决我问题的方法。我正在基于img src值在元素上添加一个类。如果img src包含' amazon'将一个类添加到最接近的li元素并基于该li元素改变跨度的文本。直到这里一切都很好,在此之后我想要更改其父元素没有该类名称的span的文本。我无法找到解决方案。这是我的代码。

<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>

2 个答案:

答案 0 :(得分:2)

我想更改其父元素没有该类名称的span的文本

您只需要定位子跨距。使用: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 $");

答案 1 :(得分:1)

试试这个(用您选择的字符串替换&#39;新文字&#39;)

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