Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   DOM в IE. Не получается создать атрибут name (https://javascript.ru/forum/events/3576-dom-v-ie-ne-poluchaetsya-sozdat-atribut-name.html)

SiZE 04.05.2009 11:08

DOM в IE. Не получается создать атрибут name
 
// Функция заполнения checkbox
// it - объект
// n - имя
addCheckbox = function  (it, n) {
var inp= docu__ment.createElement ("input")
inp.type = 'checkbox';
inp.name = n+'[]';
// inp.setAttribute ('name', n+'[]')
inp.value = it.getAttribute('value');
inp.id = n+'_'+it.getAttribute('value');
return inp;
}

// ... я получаю валидный XML...
var obj = oXML.responseXML.documentElement;
var t = obj.getElementsByTagName ("city");
for (i=0; i<t.length; i++) {
check = addCheckbox(t[i],'cities');
cities.appendChild(check);
}
 
// здесь должно вешаться событие, но мы просто проверяем кол-во созданых элементов
var c = docu__ment.getElementsByName('cities[]')
alert ('Получено городов: '+c.length)


в FF работает все хорошо, в IE не хочет создаваться атрибут name и поэтому он возвращает: "Получено городов 0". Как решить проблему с атрибутом name ?

Riim 04.05.2009 11:30

document.createElement('<input name="' + name + '">');


Тоже самое с type и checked.

var $E = Element.create = function(tagName, attributes) {
	if (IE && attributes) {
		if ('type' in attributes) {tagName += ' type="' + attributes.type + '"'; delete attributes.type}
		if ('name' in attributes) {tagName += ' name="' + attributes.name + '"'; delete attributes.name}
		if (attributes.checked) {tagName += ' checked="checked"'; delete attributes.checked}
		tagName = '<' + tagName + '>';
	}


Часовой пояс GMT +3, время: 03:36.