2

我正在尝试动态更改用户在<select>下拉列表中看到的文本。<!DOCTYPE html>如果我删除标签,下面的工作正常。但是Safari和Chrome并没有配合<!DOCTYPE html>到位。不幸的是,在我的情况下,这不是可选的。

id='s 添加到<option>标签并使用document.getElementById可以避免这个问题,但遗憾的是我也不能使用它。该脚本必须按原样在页面中运行,所以我必须通过getElementsByTagName.

有什么建议么?提前致谢。

<!DOCTYPE html>
<html>
<head></head>
<body>

<select>
  <option label="Hi" value="1">Hello</option>
  <option label="Bye" value="2">Goodbye</option>
</select>

<script type="text/javascript">
   document.getElementsByTagName("option")[0].innerHTML = "Aloha";
   document.getElementsByTagName("option")[1].innerHTML = "Shalom";
</script>

</body>
</html>
4

2 回答 2

3

您应该设置 label 属性而不是 innerHTML,或者只删除 label 属性。这应该会有所帮助。

于 2013-07-05T00:13:24.677 回答
0
<!doctype html>
<html lang="en">
<head>
<meta charset= "utf-8">
<title>Option relabel</title>
</head>
<body>

<select>
  <option label="Hi" value="1">Hello</option>
  <option label="Bye" value="2">Goodbye</option>
</select>

<script>
   var ops=document.getElementsByTagName("option");
   ops[0].removeAttribute('label');
   ops[1].removeAttribute('label');
   ops[0].text ="Aloha";
   ops[1].text="Shalom";
</script>

</body>
</html>
于 2013-07-05T02:09:17.283 回答