我在这段代码中所做的工作方式,就是你想要的任何数量的图像,你需要的只是将它们作为css类的路径。
Sub.html:
<div>
<img src ="../images/aa.png" class="path"/>
<img src ="../images/bb.png" class="path"/>
<img src ="../images/cc.png" class="path"/>
<img src ="../images/dd.png" class="path"/>
<img src ="../images/ee.png" class="path"/>
</div>
Jquery的:
$('#main').load( "../sub.html",function(data){
var newPath = 'css/images/';
$.each($('.path'), function(index){
var originalSource = $(this).attr('src');
// Replacing the source
var newSource = newPath + originalSource.substr(originalSource.lastIndexOf('/') + 1);
// Setting the new value of src
$(this).attr('src', newSource);
});
});
一切正常,路径正在添加到图像中。
网址:localhost:8080/abc/def/ghi/jkl/css/images/aa.png.
但必填网址为localhost:8080/abc/def/css/images/aa.png.
如何从网址中删除ghi
和jkl
jkl
值会随着ghi
的静态值而变化,每次都是相同的。
答案 0 :(得分:1)
使用这样的正则表达式:
var newSource = replace(/\/ghi\/[^\/]*/, '');
[^\/]
部分匹配除/
之外的所有内容。
需要这样才能将/ghi
之后的网址的可变部分转到下一个/
。
所以你的代码会变成:
$('#main').load( "../sub.html",function(data){
$.each($('.path'), function(index){
var originalSource = $(this).attr('src');
// Replacing the source
var newSource = originalSource.replace(/\/ghi\/[^\/]*/, '');
// Setting the new value of src
$(this).attr('src', newSource);
});
});
修改强>
见JSFiddle。我使用了代码的简化版本,一切都按预期工作。如果检查图像,则可以看到src属性应该被替换。