繁体   English   中英

添加选择选项不起作用

[英]Adding option to select does not work

我正在尝试添加一个选项,以使用下面的代码进行选择。 但是实际页面上没有任何变化。

var x = document.getElementById("UserField");
var option = document.createElement("option");
option.text = "Kiwi";
x.add(option);
console.log(document.getElementById("UserField"));

我从console.log得到的是:

<select id="UserField" class="jqTransformHidden">
  <option value="">(choose one)</option>
  <option value="0">1</option>
  <option value="1">2</option>
  <option value="2">3</option>
  <option value="3">4</option>
  <option value="4">5</option>
  <option>Kiwi</option>
</select>

因此,日志包含Kiwi,但是当我打开页面时,它不存在。 有什么可能是错的吗?

https://developer.mozilla.org/en-US/docs/Web/API/Node/appendChild

Node.appendChild()方法将一个节点添加到指定父节点的子节点列表的末尾。 如果给定的子对象是对文档中现有节点的引用,则appendChild()将其从其当前位置移动到新位置(在将其附加到其他节点之前,不需要从其父节点中删除该节点)。

如果要将某些内容附加到任何dom元素,请在父元素上使用appendChild(theChild) 正如Mike Brant指出, add(item, before)应该没问题。 (参考: https : //developer.mozilla.org/zh-CN/docs/Web/API/HTMLSelectElement/add

回答:

确保在dom准备就绪(onload或DOMContentLoaded)时执行脚本。

https://developer.mozilla.org/de/docs/Web/API/GlobalEventHandlers/onload

加载事件在文档加载过程结束时触发。 至此,文档中的所有对象都在DOM中,并且所有图像,脚本,链接和子框架均已完成加载。

function load() {
  // execute your code here
}
window.addEventListener("load", load);

您可以检查以下jsfiddle: https ://jsfiddle.net/pfc7fhkm/3/

 window.onload = function() { var x = document.getElementById("UserField"); var option = document.createElement("option"); option.text = "Kiwi"; x.add(option); console.log(document.getElementById("UserField")); } 
 <select id="UserField" class="jqTransformHidden"> <option value="">(choose one)</option> <option value="0">1</option> <option value="1">2</option> <option value="2">3</option> <option value="3">4</option> <option value="4">5</option> </select> 

希望能帮助到你

将其ID转换为函数,但也可以通过jQuery单击来实现

如果将它附加到按钮的onclick函数上,它将起作用:

<script>
var mydropdown = $('#UserField');
function add(){
    mydropdown.append("<option>"+$(this).val()+"</option>");
}
</script>

这也适用于点击

<script>
var mydropdown = $('#UserField');
var mybtn = $('#buttonId');
mybtn.click(function(){
     mydropdown.append("<option>+$(this).val()+"</option>");
 });
</script>

当我将脚本放在HEAD部分时,对我有用。 猕猴桃出现了。 您将Java脚本放在哪里? 我包括了完整的代码。

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Untitled Page</title>
        <script type="text/javascript">
            var x = document.getElementById("UserField");
            var option = document.createElement("option");
            option.text = "Kiwi";
            x.add(option);
    </script>
</head>
<body>
    <select id="UserField" class="jqTransformHidden">
  <option value="">(choose one)</option>
  <option value="0">1</option>
  <option value="1">2</option>
  <option value="2">3</option>
  <option value="3">4</option>
  <option value="4">5</option>
  <option>Kiwi</option>
</select>
</body>
</html>

尝试删除JavaScript,看看它是否有效。 如果这样做,可能意味着您的JavaScript代码有一些错误,但是对于html代码,我真的看不到任何错误

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM