javascript:добавление нового аттрибута в тэг

Статус
В этой теме нельзя размещать новые ответы.
javascript:добавление нового аттрибута в тэг

Добрый день. Вкратце опишу задачу. Есть выпадающий список. При выборе элемента должен генериться из стороннего массива ещё один <select> и отображаться на сайте. Так вот если запихивать это селект в структуру страницы через innerHTML, то ни FF, ни IE не видят ни одного атрибута этого селекта <select id="www" onchange=""to_math()>...
Решил сделать так:
PHP:
var selectBox = document.createElement('select');
selectBox.setAttribute("name", "iCity");
selectBox.setAttribute("id", "iCity");
//var onchange = document.createAttribute("onchange");
//onchange.nodeValue = "to_math();";
//selectBox.setAttributeNode(onchange);
selectBox.setAttribute("onchange", "to_math()");
selectBox.options[0] = new Option("", "");

var j = 1;
for (var i in Cities[chosenCity]) {
	if (i == 0) continue;
	selectBox.options[j] = new Option(i, Cities[chosenCity][i]);
	j ++;
}
document.getElementById("underCities").appendChild(selectBox);
Так, вот всё бы хорошо, но долбаный (как я его ненавижу - стандарт, ёпт) IE, не видит свойства onchange. Если присоединять onhange с помощью закоментированных строк, то не работает нигде вообще. Есть ли возможность "припаять" такое нестандартное св-во и видимо "способами" DOM или хоть как-нибудь ? подсобите
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Вася Патриков
Посмотреть как на других сайтах делают нельзя никак?
 
Ребята, всем спасибо, особенно Mr_Max.
У начальства сегодня ДР, буду думать в понедельник, но мне кажется что MiRacLe угадал больше всех.

-~{}~ 27.07.07 17:46:

Mr_Max
И вообще, сколько я должен сайтов перешерстить, чтобы отыскыть подобную вещь. Ай, да ладно, всё равно - спасибо.
 
отпишусь, как нагадаю.

-~{}~ 30.07.07 10:14:

Точно, я вспомнил - я же сам когда то так делал сам, а записи, предложенные sayber и MiRacLe - равноценны. Просто если включить мозг, окажется, что записью var selectBox = document.createElement('select'); я создаю объект [object HTMLSelectElement], и соответственно к javascript-объекту св-ва добовляются так: object.newPropertyName = newPropertyValue; Алилуя !!!
 

MiRacLe

просто Чудо
кусочек ..уя

надо понимать разницу между event-ами и properties-ами, дабы не огрести проблем в будущем.
 
надо понимать разницу между event-ами и properties-ами, дабы не огрести проблем в будущем.
1. а не просвятите, в чём она заключается.
2. появился ещё вопрос. IE не втыкает этот код в структуру сайта, а в ФФ всё нормально. Бесит. Очень. А вот если сделать руками: document.write("<table id=\"ttt\" onmouseover=\"alert('hello!')\"><tr>www<td></td></tr></table>");
то, все свойства можно получить через getElementById("ttt"). Что за ... ?
Код собственно:
PHP:
var calendarMonth = document.createElement("table");
calendarMonth.border = 1;

var calendarWeek = document.createElement("tr");

var dayDate = document.createTextNode("1");
var calendarDay = document.createElement("td");

calendarDay.appendChild(dayDate);
calendarWeek.appendChild(calendarDay);
calendarMonth.appendChild(calendarWeek);
document.getElementById("calendarInsert").appendChild(calendarMonth);
-~{}~ 03.08.07 12:29:

Зачем эти высокие сказки про реализацию DOM в javascript ? Или DOM там присутствует, просто некоторые браузеры его криво реализуют ?
 

Nutty

Новичок
хех...:)
потому что в ИЕ после table должно идти tbody.
а у тебя его нет. в мазиле и опере вроде должно работать, а в ие нет. (www.quirksmode.org)
 

BRat

o_0
если когда-нибудь придется тебе сортировать строки в таблице, ты поймешь что это не бесполезный тег .. а сейчас прими как есть, то что он нужен )
 
ни фига, какая разница. так у меня все строки были дочерними от <table>, а так от <tbody> - и никакой разницы. А вот то что ФФ атоматом <tbody> подставляет - вот это бесит реально. Я хочу видеть в браузере тот html, который я пишу (и соответственно javascript-код расчитан под него), а не который мне предлагают типы из фф-сообщества, перечитавшие спецификаций. вот от такой фигни и появляется понятие - кроссбраузерности.
 

AmdY

Пью пиво
Команда форума
:), не соблюдение спецификации и привело к появлению "кроссбраузерности"
 
а там размытые формулировки. как в библии :). Лучше бы W3C, взяли да написали программный подключаемый модуль для отображения html-разметки для браузеров и лицензию выдавали бы например потом, как одобренным к употреблению браузерам :) , а то наверное в документации там тонут уже - бюрократы. И такой же для javascript`а... А то все ищут верстальщиков, пишущих кроссбраузерный код... Э-э-э-х *устало_махнув_рукой_и_сухо_сплёвывая_на_землю* :)
 

dimagolov

Новичок
Вася Патриков, нежелание воспринимать окружающую действительность во всей ее сложности и многообразии никоим образом не приводит к упрощению этой самой действительности :D
 

algo

To the stars!
Тема закрыта.

Проблемы личного характера и бессмысленные споры между участниками не являются предметом обсуждения форума.
Обсуждайте их в привате.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху