我用JS在下拉框中更改了一些内容,但是innerHTML不会随更改的内容一起返回

I change something on dropdown box with JS, but innerHTML wont return with the changed content

本文关键字:但是 innerHTML 返回 一起 JS 我用      更新时间:2023-09-26

>我有一个列表:

<select id = "opt">
  <option value="a">a</option>
  <option value="b">b</option>
  <option value="c">c</option>
</select>

让我们这样做:

alert (document.getElementById('opt').innerHTML);

它将打印:

<select id = "opt"><option value="a">a</option><option value="b">b</option><option value="c">c</option></select>

还没有问题。现在我更改所选项目:

for (var count = 0; count < document.getElementById('opt').childNodes[0].options.length; count++)
{
 if (document.getElementById('opt').childNodes[0].options[count].value == 'b') { document.getElementById('opt').childNodes[0].options[count].selected = true; break; }
}

并再次打印:

alert (document.getElementById('opt').innerHTML);

它将再次打印:

<select id = "opt"><option value="a">a</option><option value="b">b</option><option value="c">c</option></select>

但我排除了类似的东西!

<select id = "opt"><option value="a">a</option><option value="b" **selected="selected"**>b</option><option value="c">c</option></select>

所以.innerHTML不遵循更改。如何解决?

您看到的是属性和属性之间的区别。创建元素时,selected 属性将复制到 selected 属性中。您正在更改属性,但这不会更改属性。

您可以在此处查看设置属性和属性之间的区别:

http://jsfiddle.net/Guffa/Pec9j/

Java 脚本是一种客户端语言。加载页面后,将应用 javascript,因此它不会更改已加载的页面源代码。如果你想知道选择了哪个元素-

var value = opt.options[opt.selectedIndex].value;