проблема с javascript | строковым текстом между одинарными кавычками

#javascript

#javascript

Вопрос:

‘bg’ распознается как переменная .. предполагается, что это текст.. я также пробовал двойные кавычки, но url() принимает только URL-адрес в одинарных кавычках

             var ahref = '<a href="#" style="background-image: url('bg');"></a>';
            var newhref = ahref.replace('bg', newThumbnailUrl) 

Комментарии:

1. Ваш вопрос неясен. bg Предполагается, что это переменная, которая приводит к строке текста?

2. '<a href="#" style="background-image: url('' bg '');"></a>' является надежным.

Ответ №1:

Интерполяция строк JavaScript работает по-другому.

Вы можете использовать литералы шаблона, используя обратную метку ` ` .

 var bg = 'your-image.jpg';
var ahref = `<a href="#" style="background-image: url('${bg}');"></a>`;

console.log(ahref); 

Или вы можете объединить строки с помощью оператора сложения .

 var bg = 'your-image.jpg';
var ahref = '<a href="#" style="background-image: url(''   bg   '');"></a>';

console.log(ahref); 

url() Свойство не требует кавычек, только при определенных условиях.

URL-адрес, который является относительным или абсолютным адресом или указателем на веб-ресурс, который должен быть включен, или uri данных, необязательно в одинарных или двойных кавычках. Кавычки требуются, если URL-адрес содержит круглые скобки, пробелы или кавычки, если только эти символы не экранированы, или если адрес содержит управляющие символы выше 0x7e. Источник

Комментарии:

1. Вам могут понадобиться эти дополнительные кавычки, как в моем комментарии, для сложных URL-адресов… но ваше решение должно работать в большинстве случаев.

2. Добавлен @StackSlave. Хороший улов!

3. спасибо, что решил мою проблему.. я искал решение в течение нескольких часов, пока вы не спасли меня:'( <3 спасибо