我正在尝试在我的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
任何帮助都会得到满足。
答案 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", "");
});
});
答案 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>