2013-07-26 2 views
3

Можете ли вы создать элемент, не действуя каждый раз так?Javascript Создайте элемент с различными атрибутами

var button = document.createElement('button'); 
button.class = codebuttons; 
button.value = Backup 

Например

document.querySelector('.right.Sub').appendChild(document.createElement("button").setAttribute("class", "codebuttons")); 
+0

вы даете Question себя и ответить на него tooo ... что осталось для нас .. –

ответ

2

Ваш «например» код сильно отличается от кода на вершине, но оба должны быть исправлены.

Первый ваш начальный код. Это будет работать, за исключением того, что вам нужно использовать .className для установки класса. И, конечно, вам нужны кавычки для создания строк.

var button = document.createElement('button'); 
button.className = "codebuttons"; 
button.value = "Backup"; 

Во-вторых, ваш нижний код не будет работать, потому что вы не добавляя элемент. Вы добавляете результат возврата .setAttribute(), который равен undefined.

Вы можете, однако, скопировать .setAttribute() в конец .appendChild(), так как он возвращает присоединенный элемент.

document.querySelector('.right.Sub') 
     .appendChild(document.createElement("button")) 
     .setAttribute("class", "codebuttons"); 

Есть однако проблемы в более старых версиях IE с установкой "class" использованием setAttribute(). Поэтому вместо этого задайте свойство как в первом примере.

document.querySelector('.right.Sub') 
     .appendChild(document.createElement("button")) 
     .className = "codebuttons"; 
+0

С помощью этого кода, у меня есть только тип, но не значение. document.querySelector ('. Right.Sub') .appendChild (document.createElement ("input")) .setAttribute ("type", "button") .setAttribute ("value", "Backup"); – Frostman

+0

Конечно, если вам нужно установить несколько атрибутов/свойств, вы должны сохранить новый элемент в переменной и установить их. –

Смежные вопросы