15

我拥有的 html 结构类似于:

<ul id="something">
  <li>
    <a href="">
      <img src="http://domain.com/directory/file1-128x79.jpg">
    </a>
  </li>
  <li>
    <a href="">
      <img src="http://domain.com/directory/file2-128x79.jpg">
    </a>
  </li>
  <li>
    <a href="">
      <img src="http://domain.com/directory/file3-128x79.jpg">
    </a>
  </li>
</ul>

我正在尝试将文件名从file#-128x79.jpg 更改file#-896x277.jpg

我不知道如何获取动态生成的文件名并搜索和替换 src 更改。

我找到了用“none”替换整个 src 的方法,以确保到目前为止我做对了,但我不知道该怎么做。

$('#something').removeAttr('id').prop('class', 'some-class').find('img').prop('src', 'none');
4

7 回答 7

17

您可以通过首先使用选择器选择所有图像然后使用内容回调来替换srcfor each :imgattrreplace

$('#something img').attr('src',function(i,e){
    return e.replace("-128x79.jpg","-896x277.jpg");
})
于 2011-07-04T07:23:48.107 回答
6

您可以为您的图像标签分配一个 ID,例如

<img id ="pic" src="http://domain.com/directory/file3-128x79.jpg">

然后在jquery中使用

$('#pic').attr('src', 'file#-896x277.jpg');
于 2011-07-04T07:21:49.727 回答
3

演示

$('img').hover(function(){ // or any other method
    this.src = this.src.replace("128x79", "200x60");         
}); 
于 2011-07-04T07:36:07.710 回答
1

您应该在.children()之前添加.find('img')

$('#something').removeAttr('id').attr('class', 'some-class').children().find('img').attr('src', 'none');
于 2011-07-04T07:21:44.353 回答
1

注意:在此处尝试以下鼠标悬停仅用于演示目的

$(function() {
    $("something li a img")
        .mouseover(function() { 
            var src = "over.gif";
            $(this).attr("src", src); // change the image source
        })

});
于 2011-07-04T07:22:12.413 回答
0

如何使用attr

this.removeAttr('id').prop('class', 'featured-images').find('img').attr({‘src’:'file#-896x277.jpg’});
于 2011-07-04T07:22:35.597 回答
0
$('#something img').attr('src',$('#something img').attr('src').replace(x,y))
于 2011-07-04T07:26:34.377 回答