#javascript #dom #xmldom
#javascript #dom #xmldom
Вопрос:
Есть ли способ преобразовать объект Element в объект HTMLOption? У меня есть один код, который выглядит следующим образом:
var request = getXMLHttpRequest();
request.onreadystatechange =
function (){
if(request.readyState == 4 amp;amp; request.status == 200){
var regions = request.responseXML.firstChild;
document.getElementById('selectedRegiao').appendChild(regions.childNodes[1]);
}
}
request.open("get", "getRegions.php?country=" country,true);
request.send();
Я знаю, что этот код не работает и не указан, но я думаю, этого достаточно, чтобы дать представление о том, чего я пытаюсь достичь. Элемент с идентификатором selectedRegiao является <select>
тегом. <br>
regions — это XML. Это выглядит следующим образом:
<option name="val1">val1</option>
<option name="val2">val2</option>
Я хотел быстрым и простым способом преобразовать его в тег Option. Я знаю, как это сделать долгим путем, но. Есть ли прямой и быстрый способ сделать это?
Комментарии:
1. Ответ может быть отрицательным, но решение правдоподобно…
Ответ №1:
Вы должны иметь возможность получать элементы параметра из XML с помощью
var optsFromXml = regions.getElementsByTagName('option');
Это дало бы вам коллекцию опций для обработки в html. Например, добавление к некоторому <select>
элементу:
someSelect.appendChild (
new Option( optsFromXml[0].getAttribute('name') )
); //=> appends option with value/text from name attribute
Комментарии:
1. @Kooilnc Судя по тому, как вы написали, вы, кажется, поняли, чего я хочу, но regions.getElementsByTagName(‘option’)[0] — это объект Element, а не объект Option, и someSelect.appendChild(optsFromXml[0]) теперь разрешен.
2. Вы правы, вы не можете добавлять просто так. Исправлено: смотрите правки и jsfiddle.net/AttTa
Ответ №2:
вы могли бы сделать что-то вроде этого:
var newOpt = new Option(document.getElementById('selectedRegiao').innerHTML, document.getElementById('selectedRegiao').value);
selectObject.options[index] = newOpt;
Комментарии:
1. Вы действительно не поняли, что я написал… Нужна помощь?