【发布时间】:2010-11-04 20:30:32
【问题描述】:
我正在尝试在我的 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>
最终结果应该是
<img src="/images/three-word-alt.png" alt="three word alt" />
但结果却是这样的:
<img src="/images/three-word alt.png" alt="three word alt" />
有没有更好的方法?
【问题讨论】: