我有以下HTML代码
<select id="c0" name="countries" onchange="show_other()">
<option value="1">something</option>
<div id="c1">
</div>
</select>
我有选项“something”,我想通过Ajax生成其他选项。 但如果我尝试这个
document.getElementById('c1').innerHTML = xmlhttp.responseText
它不起作用,但是
document.getElementById('c0').innerHTML = xmlhttp.responseText
工作正常,但我需要保留第一个选项。 你能解释一下这是什么问题吗? 感谢
答案 0 :(得分:1)
C1 div无效地嵌套在select元素中,至少根据你的例子。
答案 1 :(得分:1)
您不得在<div>
标记中放置<select>
个元素。 <option>
内只允许<select>
个元素。
要实现您的目标,请尝试以下方法:
document.getElementById('c0').innerHTML += xmlhttp.responseText;
如果你的目标是在那里有一个静态元素并且只是替换<div>
中的元素,那么你想要做的就是将默认选项编码到你的JS中: / p>
document.getElementById('c0').innerHTML = '<option value="1">something</option>' + xmlhttp.responseText;
您还可以从中提取虚拟选择:
document.getElementById('c0').innerHTML = document.getElementById('dummyselect').innerHTML + xmlhttp.responseText;
与
结合使用<select id="dummyselect" style="display:none;">
<option value="1">something</option>
</select>
<select id="c0"></select>
祝你好运!