проблема с appendChild
столкнулся с такой проблемой:
на любую строку, кроме document.body.appendChild() ругается ошибкой Object #<NodeList> has no method 'appendChild' всё работает, но лишь под body в чём может быть проблема? |
Цитата:
Цитата:
Цитата:
|
андерстенд-то андерстенд), только нифига не работало)
впрочем, я уже разобрался. но теперь другая загвоздка у меня: не получается прописать в созданном селекте событие onchange. вот пример:
var slct = document.createElement('SELECT');
slct.name = 'fish';
slct.onchange = 'setFishes(this)';
так ли прописывается это событие? |
Цитата:
Событием должна быть функция, а не строка... |
есть ли примеры? скиньте ссылку, пожалуйста. если не затруднит.
|
Цитата:
http://javascript.ru/tutorial/events...voystvo-obekta |
погоди, ты правильно всё понял?
у меня уже есть готовая функция, которая выполняется <select name="fish" onchange="setFishes(this)"> задача состоит в том, чтобы чтобы кликом создать точно такой же селект, с точно такими же атрибутами. нейм появляется, ончейндж нет. |
Цитата:
Цитата:
slct.onchange = function (){
// тут нужные действия...
};
|
Вот еще на эту тему...
http://javascript.ru/tutorial/events/crossbrowser |
Если именно строкой, то:
slct.setAttribute('onchange', 'setFishes(this)');
|
Цитата:
есть форма, в которой есть 2 селекта:
<div id="fich">
<select name="fish" onchange="setFishes(this)">
<option value="" selected>Первый список:</option>
<option value="first">один</option>
<option value="second">два</option>
</select>
<select name="color">
<option value="" selected>Второй список:</option>
</select>
</div>
к первому есть функция
function setFishes(chooser){
var newElem;
var wtf = ( navigator.appName == "Microsoft Internet Explorer" ) ? -1 : null;
var fishChooser = chooser.form.elements["color"];
while (fishChooser.options.length){
fishChooser.remove(0);
}
var choice = chooser.options[chooser.selectedIndex].value;
var ki = fishki[choice];
newElem = document.createElement("option");
newElem.text = "Второй список:";
newElem.value = "";
fishChooser.add(newElem, wtf);
if ( choice != "" ){
for (var i=0;i<ki.length;i++){
newElem = document.createElement("option");
newElem.text = ki[i].text;
newElem.value = ki[i].value;
fishChooser.add(newElem, wtf);
}
}
}
var fishki = new Object();
fishki["first"] = [
{ value:"three", text:"три" },
{ value:"four", text:"четыре" },
{ value:"five", text:"пять" },
{ value:"six", text:"шесть" }
];
fishki["second"] = [
{ value:"seven", text:"семь" },
{ value:"eight", text:"восемь" },
{ value:"nine", text:"девять" },
{ value:"ten", text:"десять" }
];
клонировать получилось всё. но теперь вот такая ошибка: Cannot read property 'length' of undefined. |
| Часовой пояс GMT +3, время: 01:34. |