Я пытаюсь добавить функцию в своем скрипте jQuery, которая создает полный путь src для img на основе его атрибута alt. Идея состоит в том, чтобы сделать код настолько тонким, насколько это возможно, чтобы неучастники, которые его обрабатывают, ничего не сломали; все, что им нужно было бы сделать, это получить правильный атрибут 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" />
Может быть, есть лучший способ сделать это?