可以't重写<选项>当<!DOCTYPE html>目前

Can't rewrite <option> text in Safari/Chrome when <!DOCTYPE html> present

本文关键字:gt lt DOCTYPE html 目前 重写 可以 选项      更新时间:2023-09-26

我正在尝试动态更改用户在<select>下拉列表中看到的文本。如果我删除<!DOCTYPE html>标记,下面的操作会很好。但Safari和Chrome并不与现有的<!DOCTYPE html>合作。不幸的是,在我的情况下,这不是可选的。

id=添加到<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>

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

<!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>