根据类改变图像src

时间:2015-11-25 09:30:08

标签: jquery css

我有三张图片,其中只有一张可以选择状态。其中任何一个都会动态添加一个类。如果该类存在,我必须更改该图像的src。这是我的代码到目前为止,它有一些jQuery的问题。

<div class="estart">            
    <div class="on-off-1">
        <img class="" src="img/on1.png" alt="">                        
    </div>

    <div class="on-off-2">
        <img class="dynamic-added-class" src="img/on2.png" alt="">                        
    </div>           

    <div class="on-off-3">
        <img class="" src="img/on3.png" alt="">                        
    </div>             
</div>
$("document").ready(function() {
    $(".estart div img").ready(function() {
        if ($('.estart div img').hasClass('dynamic-added-class')){
          this.src = this.src.replace("on", "off"); 
        }
    });
});

关闭图像为off1,off2 ......

3 个答案:

答案 0 :(得分:2)

  

.ready()方法只能在与当前文档匹配的jQuery对象上调用。

因此,请勿使用$(".estart div img").ready(function() {

您可以使用下面的each

$(document).ready(function() {//use document not 'document'
    $(".estart div img").each(function() {
        if ($(this).hasClass('is-selected')){
          this.src = this.src.replace("on", "off"); 
        }
    });
});

答案 1 :(得分:1)

最好使用图像作为背景而不是图像,然后您可以切换元素的类,然后更新背景。产生预期的效果。

答案 2 :(得分:0)

另一种简单的方法是

$("document").ready(function() {
    var obj=$("img.dynamic-added-class");
     if(obj.length){ //check if there is any image with given class
        var src= obj.attr("src").replace("on", "off");
        obj.attr("src",src)
      }
});

演示: Fiddle

为什么在你可以直接检查时迭代并找到元素