Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   проблема с appendChild (https://javascript.ru/forum/misc/44739-problema-s-appendchild.html)

Sivik 01.02.2014 18:16

Цитата:

Сообщение от Ruslan_xDD (Сообщение 295159)
Если именно строкой, то:
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, время: 17:34.