删除img src末尾的resize

时间:2014-09-15 15:58:44

标签: javascript jquery html wordpress image

我正在尝试在我的img src末尾删除一个字符串,用于页面上我的所有img元素。

现在出现的img src示例

http://www.example.com/B-UV-image-copy.jpg?resize=320%2C180

我希望它如何

http://www.example.com/B-UV-image-copy.jpg

我试图在页脚中使用javascript来查找所有img元素,然后从所有这些元素中删除?resize = 320%2C180。字符串"?resize = 320%2C180"在我想要影响的所有图像上总是一样的。

目前我的代码如下:

<script>
  $('img').attr('src', function(index, attr) {
  return attr.replace("?resize=320%2C180", "");
  });
</script>

我很欣赏我可能会发生这种错误。目前上面的脚本什么也没做,但我在firebug中遇到错误:

Uncaught TypeError: undefined is not a function 

任何帮助都会得到满足。

5 个答案:

答案 0 :(得分:2)

您的代码有效。您只需要加载DOM,并且需要确保$jQuery绑定。

<script>
   (function ($) {
      $(document).ready(function() {
          $('img').attr('src', function(index, attr) {
            return attr.replace("?resize=320%2C180", "");
          });
       });
   }(window.jQuery));
</script>

答案 1 :(得分:1)

适合我。在你要求jQuery操作它之前,你只需要ensure that the DOM is ready

$(function(){
    $('img').attr('src', function(index, attr) {
        return attr.replace("?resize=320%2C180", "");
    });
});

http://jsfiddle.net/os5rhw23/

答案 2 :(得分:1)

使用RegExp从URL中删除所有查询部分:

jQuery(function ($) {
    $('img').attr('src', function(index, attr) {
        return attr.replace(/\?.*$/i, '');
    });
});

答案 3 :(得分:0)

另外两个答案是正确的,但是对于jQuery的DOM就绪处理程序本地作用域$,最好的简写是jQuery(function ($) { your code here}

e.g。

<script>
   jQuery(function ($) {
       $('img').attr('src', function(index, attr) {
          return attr.replace("?resize=320%2C180", "");
       });
   });
</script>

答案 4 :(得分:0)

如果你想用纯JS做这个,在页脚内联而不需要jQuery你可以简单地循环遍历所有图像 - 只要这个脚本在页面上的某些点之后图像(例如就在关闭身体之前)

<body>
    <!-- some html, blah blah -->
    <script>
        var images = document.images,
            i = images.length;
        while(i--) {
            var image = images[i];
            image.src = image.src.replace("?resize=320%2C180", "");
        }
    <script>
</body>

http://jsfiddle.net/os5rhw23/1/