javascript获取select标签下的option的value求解?
<selectname="second"size="10"multiple="multiple"class="td3"id="second"><optionvalue="...
<select name="second" size="10" multiple="multiple" class="td3" id="second">
<option value="选项9">选项9</option>
</select>
为什么是[object HTMLOptionElement]呢?
var secondElement=document.getElementById("second");
alert(secondElement[secondElement.selectedIndex]);
但是有时候却可以,求解???
我是给一个按钮加事件的,故是先选中某个option,然后点击按钮触发事件。而不是一运行javascript代码就弹出信息框的,因为那样根本就没有选中option的机会 展开
<option value="选项9">选项9</option>
</select>
为什么是[object HTMLOptionElement]呢?
var secondElement=document.getElementById("second");
alert(secondElement[secondElement.selectedIndex]);
但是有时候却可以,求解???
我是给一个按钮加事件的,故是先选中某个option,然后点击按钮触发事件。而不是一运行javascript代码就弹出信息框的,因为那样根本就没有选中option的机会 展开
2个回答
展开全部
页面加载时,因为没有任何选中项,所以 secondElement.selectedIndex 值是 -1,secondElement
[-1]为undefined,所以alert()会弹出 undefined 或 一个空的对话框;
如果你用鼠标选中了“选项9”,secondElement.selectedIndex 值是 0,secondElement
[0]为"<option value="选项9">选项9</option>",所以alert()会弹出 [object HTMLOptionElement]
把代码做一些修改:
<option value="选项9">选项9</option> 修改为
<option value="选项9" selected>选项9</option>
alert(secondElement[secondElement.selectedIndex]); 修改为 alert(secondElement[secondElement.selectedIndex].value);
[-1]为undefined,所以alert()会弹出 undefined 或 一个空的对话框;
如果你用鼠标选中了“选项9”,secondElement.selectedIndex 值是 0,secondElement
[0]为"<option value="选项9">选项9</option>",所以alert()会弹出 [object HTMLOptionElement]
把代码做一些修改:
<option value="选项9">选项9</option> 修改为
<option value="选项9" selected>选项9</option>
alert(secondElement[secondElement.selectedIndex]); 修改为 alert(secondElement[secondElement.selectedIndex].value);
追问
正解,是我大意了
展开全部
本来就应该html dom 的option啊,secondElement本身不是节点集合,只是一个select元素节点,但是他有很多子节点,options,这个数组表示的意思不是有一堆select元素选择其中一个,是select的子节点的意思这种写法不符合标准dom写法 因为select和option属性通常是在一起的,后者被认为是前者的一部分,但不是任意的子节点都能这样写的,只有表单对象可以吧
<div id='second'>
<p></p>
</div>
<script>
window.onload=function(){
var secondElement=document.getElementById("second");
alert( secondElement);
alert(secondElement[0]); //这样就不会得到任何对象
}
</script>
<form id='second'>
<input type='text'/>
</form>
<script>
window.onload=function(){
var secondElement=document.getElementById("second");
alert( secondElement);
alert(secondElement[0]); //这样就能得到input对象
}
</script>
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询