Php Javascript错误:对象没有方法“getElementById”
我得到一个Javascript错误:对象没有方法“getElementById”。我正在尝试使用一个按钮将选定的元素传输到HTML中的另一个选择框。我到处都找过,但没人能找到适合我的解决方案=\ JavascriptPhp Javascript错误:对象没有方法“getElementById”,php,javascript,html,Php,Javascript,Html,我得到一个Javascript错误:对象没有方法“getElementById”。我正在尝试使用一个按钮将选定的元素传输到HTML中的另一个选择框。我到处都找过,但没人能找到适合我的解决方案=\ Javascript <script language="javascript"> function addDivision() { var selected = document.frmSubmit.getElementById("selectedDivisions");
<script language="javascript">
function addDivision()
{
var selected = document.frmSubmit.getElementById("selectedDivisions");
var div = document.frmSubmit.getElementById("divisions");
var divId = div.options[div.selectedIndex].value;
var divText = div.options[div.selectedIndex].text;
var newOption = document.frmSubmit.createElement(divId);
newOption.text = divText;
selected.add(newOption,null);
}
</script>
HTML
发生此问题是因为您试图从节点元素使用getElementById,而此方法属于文档。仔细想想,这是合乎逻辑的:id在页面中应该是唯一的,所以使用dom元素按id过滤元素是没有意义的 因此,如果您从以下位置更改:
document.frmSubmit.getElementById("selectedDivisions");
致:
一切都应按预期进行
作为旁注,节点元素支持getElementsByTagName和getElementsByClassName——它们用于选择与指定标记/类名称匹配的所有子节点
检查API参考:
您试图使用的函数属于DOMDocument,而不是DOMEElement document.getElemendById 代码的有效版本实际上是: document.getElementById选择的分区
注意:ID属性应该是唯一的,这意味着如果文档中有两个或多个元素具有相同的ID,则会考虑该页面。我会尝试使用jQuery进行此操作。您只需从一个select中获取所需的元素并将其附加到另一个select中即可
$('#selectedDivisions').append($('#divisions'));
表单对象的类型为HTMLFormElement。如前所述,您可以在文档上调用getElementById,但不能在元素上调用,包括在HTMLFormElement上
但是一个表单包含元素,并且给定一个HTML表单元素对象,人们希望访问该表单元素中的特定元素是合理的,那么如何做到这一点呢
嗯,您的HTMLFormElement提供了一个名为的属性。访问HTMLFormElement上的元素会生成一个包含在表单中找到的元素的列表。HTMLFormControlsCollection是从类型派生的。HTMLFormControlsCollection有一个只读属性和两个方法
属性是length,它返回在集合中找到的元素的计数,在本例中,这些元素将是表单元素中的元素
这两种方法是:
itemindex-返回指定的从零开始的索引处的特定节点。如果索引超出范围,则返回null。
namedItemid-返回其ID或名称(作为备用项)与ID指定的字符串匹配的特定节点。仅在HTML中,并且仅当引用的元素支持name属性时,才作为最后手段进行名称匹配。如果给定id/名称不存在节点,则返回null。
因此,如果一个表单对象的类型为HTMLFormElement,那么解决方案是访问该对象的elements属性,使用要从HTMLFormElement检索的元素的id调用该对象的namedItem id
语法是:
let element_obj = form_obj.elements.namedItem( id )
其中form_obj是您的HTMLFormElement,id是您要访问的表单中元素的id。id是单数,您不能有多个具有相同id的元素。感谢您的快速回复!现在我得到一个错误:无法读取属性'value'未定义。我知道我给了每个条目一个值,这是一个错误,让我首先把frmSubmit放在那里。正如我所说的,你不能从元素中使用getElementById,因为它不起作用,所以你应该使用document.getElementById而不是document..getElementById,它也包括var div。
$('#selectedDivisions').append($('#divisions'));
let element_obj = form_obj.elements.namedItem( id )