У меня есть простая функция называется loadStyles()
здесь:Изменение нескольких свойств DOM элемента с JavaScript
function loadStyles(url) {
var link = document.createElement('link');
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = url;
link.media = 'all';
(document.getElementsByTagName("head")[0] || document.documentElement).appendChild(link);
}
мне было интересно, если есть другой способ добавления значения определенных свойств, кроме этого: link.rel
равна ...
, link.type
равно ...
и т.д.
Я пытался что-то вроде этого:
function loadStyles(url) {
var link = document.createElement('link');
link += {
rel: 'stylesheet',
type: 'text/css',
href: url,
media: 'all'
};
(document.getElementsByTagName("head")[0] || document.documentElement).appendChild(link);
}
Но это не работает. Я знаю, что, возможно, даже глупо даже попробовать (потому что моя IDE говорит, что это выражение {....}
не может быть присвоено типу HTML-элемента ^^ ').
возможно дубликат [Установка нескольких атрибутов для элемента одновременно с JavaScript] (http://stackoverflow.com/questions/12274748/setting-multiple-attributes-for-an-element-at-once- с-javascript) – DavidDomain
Я не думаю, что вы можете изначально «добавить» объект к DOMElement, так как он его вообще не поддерживает. Самое быстрое решение, которое у вас есть, - либо создать функцию и ссылаться на объект (и установить каждое отдельное свойство с помощью цикла for), либо создать собственный класс и притвориться, что он принимает объект свойств в качестве параметра (но вам все равно придется петля, чтобы заполнить свойства DOMElement), что и делает jQuery для многих прототипов (пример .css - пример). Кроме того, вы также можете (в конечном итоге) расширить объект DOM, но насколько я знаю, это не совсем хорошая практика. – briosheje