有没有人知道缩短这个的方法:
$('.el').attr('src', $('.el').attr('src').replace('/subpath1/', '/subpath2/'))
答案 0 :(得分:5)
使用回调函数执行此操作,您可以将旧属性值作为第二个参数。
$('.el').attr('src',function(i, oldSrc){
return oldSrc.replace('/subpath1/', '/subpath2/');
})
$('.el').attr('src', (i, s) => s.replace('/subpath1/', '/subpath2/'))
您可以使用捕获组正则表达式减少代码长度。
$('.el').attr('src', (i, s) => s.replace(/(\/subpath)1\//, '$12/'))
答案 1 :(得分:1)
您也可以首先将元素存储在var中:
var el = $('.el');
el.attr('src', el.attr('src').replace('/subpath1/', '/subpath2/'))
所以你不需要第二次抓取DOM。