#javascript #syntax #dom-events #background-image
#javascript #синтаксис #dom-события #фоновое изображение
Вопрос:
Здесь у меня есть код, который я должен был сделать, чтобы изменить свойство стиля, мне удалось заставить его работать, но пришлось искать правильный способ размещения ‘, » и .
document.getElementById('image').style.backgroundImage="url('" element.src "')";
У меня нет проблем с пониманием того, как это работает структурно, мой единственный вопрос заключается в том, почему дополнительные ‘, дополнительные » и дополнительные внутри, где вы вызываете элемент.src.
изначально я делал что-то подобное, и это, очевидно, не сработало, почему эти (‘» и «‘) заставили код работать…
любая помощь приветствуется
приветствия
document.getElementById('image').style.backgroundImage="url(' element.src ')";
Ответ №1:
Давайте проанализируем все, начиная с вашего первого сегмента кода, и это должно дать вам лучшее понимание:
document.getElementById('image').style.backgroundImage="url('" element.src "')";
document
является переменной
getElementById
является функцией, строка 'image'
которой является параметром для этой функции.
style
является ли свойство
backgroundImage
это свойство, которое должно быть и должно принимать строку
"url('"
является строкой
element
является переменной, в данном случае объектом, src
являющимся одним из его свойств.
"')"
является строкой
Знаки используются для объединения строки, сформированной из "url('"
, element.src и «‘)». Короче говоря, вы говорите: «создайте строку из "url('"
element.src
"')"
и назначьте эту строку свойству backgroundImage
.
Принимая во внимание, что в этом:
document.getElementById('image').style.backgroundImage="url(' element.src ')";
Браузер понятия не имеет, что element.src
это переменная, а не часть строки, поскольку вы заключили ее в двойные кавычки, сигнализируя, что все, что находится между кавычками, является строкой.
Комментарии:
1. я полностью понимаю, также я заметил, что могу избежать этой конфигурации (» url ‘ » ) и обойтись без использования дополнительного ‘ как такового (» url » ).
Ответ №2:
element
является переменной вне строкового литерала, но внутри строкового литерала это просто элемент word.
const element = "Hello!";
const first = "start element end";
const second = "start " element " end";
console.log({first,second});
Комментарии:
1. хорошо, теперь я все понял! я думал, что это связано с некоторым соглашением в синтаксисе, вместо этого это единственный способ включить элемент.src, потому что в противном случае он преобразует его в строку, понял! действительно ценится
Ответ №3:
Внутри CSS вы должны поместить свой URL-адрес в кавычки или апострофы, так что это также должно быть переведено на javascript.
Когда вы вызываете событие DOM, оно будет делать это:
Исходный тег:
<div src="http://example.com/image.png"></div>
после вызова функции javascript:
<div style="background-image: url('http://example.com/image.png');" src="http://example.com/image.png"></div>
и поскольку вам нужно иметь какую-то кавычку в синтаксисе URL, вы должны использовать кавычки другого типа, например, ''
в этом случае.
Для получения дополнительной информации о стиле фонового изображения вы можете перейти сюда: https://www.w3schools.com/css/css_background_image.asp
но чтобы полностью ответить на ваш вопрос,
там используется, чтобы сказать, что вы хотите добавить туда что-то еще, например, другую строку или переменную.
Более подробная информация об этом здесь: https://www.w3schools.com/jsref/jsref_operators.asp (вам нужно прокрутить немного вниз до раздела строковые операторы).