我收到一个 Javascript 错误:对象 # 没有方法“getElementById”。我正在尝试使用一个按钮将所选元素传输到 HTML 中的另一个选择框。到处都看过,但没有人的解决方案似乎对我有用=\
Javascript
<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
<div id="content">
<form id="frmSubmit" name="frmSubmit" action="">
<div id="Step1Content">
<h2 style="float:left">Step 1:</h2><p style="float:left; padding-top:10px; padding-left:20px;">Select your divisions</p>
<div style="clear:both">
<select id= "divisions" name="divisions" size="8">
<? //Getting divisions based on League_id
$getDivisionsSQL = "Select * FROM level WHERE League_ID = '1' AND disabled = '0'";
$getDivisionsQuery = $db->Query($getDivisionsSQL);
while( $divRow = $db->GetRow($getDivisionsQuery) )
{
echo "<option id=".$divRow['id'].">".$divRow['description']."</option>";
}
?>
</select>
<?
echo "<img id='doAdd' width='40px' height='25px' style='position: relative; bottom:75px; cursor:pointer;' src='".$baseImagesPath."greenArrow.png'/>";
echo "<img id='doAdd' width='40px' height='25px' cursor:pointer; style='position: relative; bottom: 25px; right:40px; cursor:pointer;' src='".$baseImagesPath."redArrow.png'/>";
?>
<select style="position:relative; right:40px;" name="selectedDivisions" id="selectedDivisions" size="8">
<? //List of divisions to use
?> <option>Apple</option>
</select>
</div>
</div>
<div style="padding-top:50px; padding-left:50px; width:100%; float:left; ">
<h2 style="float:left">Step 2:</h2><p style="float:left; padding-top:10px; padding-left:20px;">Select the starting date of games</p>
</div>
<div style="padding-top:50px; padding-left:50px; width:100%; float:left">
<h2 style="float:left">Step 3:</h2><p style="float:left; padding-top:10px; padding-left:20px;">Select the total number of weeks in the season</p>
<div style="padding-top:50px; width:100%; float:left">
<input type="submit" value="Create Schedule">
</div>
</div>
</form>
</div>
最佳答案
发生此问题是因为您尝试从节点元素使用 getElementById
,而此方法属于 document
。仔细想想这是合乎逻辑的: ID 在您的页面中应该是唯一的 ,因此没有必要使用 dom 元素来按 id“过滤”元素。
所以,如果你从:
document.frmSubmit.getElementById("selectedDivisions");
至:
document.getElementById("selectedDivisions");
一切都应该按预期工作。
作为旁注,节点元素支持
getElementsByTagName
和 getElementsByClassName
- 它们用于选择与指定标签/类的名称匹配的所有子节点。检查 API 引用:
https://developer.mozilla.org/en-US/docs/Web/API/element
关于php - Javascript 错误 : Object #<HTMLFormElement> has no method 'getElementById' ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17972423/