it-swarm.cn

用jQuery动态替换img src属性

我正在尝试使用jQuery替换给定源的img源。例如,当图像src是smith.gif时,替换为johnson.gif。如果williams.gif替换为brown.gif等。

编辑:图像从XML检索到的顺序是随机的,每个类都不带类。

这是我尝试的:

if ( $("img").attr('src', 'http://example.com/smith.gif') ) {
              $(this).attr('src', 'http://example.com/johnson.gif');
            }
if ( $("img").attr('src', 'http://example.com/williams.gif') ) {
              $(this).attr('src', 'http://example.com/brown.gif');
            }

请注意,我的HTML有很多图像。例如

<img src="http://example.com/smith.gif">
<img src="http://example.com/williams.gif">
<img src="http://example.com/chris.gif">

等等.

因此,我该如何替换图像:如果img src =“ http://example.com/smith.gif”,然后显示“ http://example.com/williams.gif”。等...

非常感谢

31
jQuerybeast

这是您想做的:

var oldSrc = 'http://example.com/smith.gif';
var newSrc = 'http://example.com/johnson.gif';
$('img[src="' + oldSrc + '"]').attr('src', newSrc);
70
Niko

您需要在jQuery文档中签出attr方法。您正在滥用它。在if语句中所做的只是将所有图像标签src替换为第二个参数中指定的字符串。

http://api.jquery.com/attr/

替换一系列图像源的更好方法是遍历每个图像源并检查其源。

示例:

$('img').each(function () {
  var curSrc = $(this).attr('src');
  if ( curSrc === 'http://example.com/smith.gif' ) {
      $(this).attr('src', 'http://example.com/johnson.gif');
  }
  if ( curSrc === 'http://example.com/williams.gif' ) {
      $(this).attr('src', 'http://example.com/brown.gif');
  }
});
20
Trevor