我正在尝试在我的jQuery脚本中添加一个函数,该函数根据其alt属性为img构建一个完整的src路径.我们的想法是尽可能使代码变得纤薄,以便处理它的非技术人员不会破坏任何东西; 他们所要做的就是让alt属性正确,路径的其余部分由脚本自动构建.
无论如何,我的文件名包含连字符,为了使其更加万无一失,我想在alt属性中允许空格,这些空格将被替换为src属性中的连字符.麻烦的是,.replace()命令似乎只对第一个匹配的字符起作用,所以如果我在alt属性中有三个单词来描述img,则第二个空格不会被替换而img路径会中断.
这是有问题的代码:
<div class="copy"><img alt="three word alt" /></div>
<script>
$('div.copy').find('img').each(function() {
$(this).attr('src','/images/'+$(this).attr('alt').replace(' ','-')+'.png');
});
</script>
Run Code Online (Sandbox Code Playgroud)
最终结果应该是
<img src="/images/three-word-alt.png" alt="three word alt" />
Run Code Online (Sandbox Code Playgroud)
但相反它出来是这样的:
<img src="/images/three-word alt.png" alt="three word alt" />
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法呢?