<select id="wbox" name="listbox" size="20"onchange="call(this)">
<optgroup label="Taxes">
<option value="1694" label="DNA-option1"></option>
<option value="1642">RNA-option2</option>
我有一个列表框,我想提取所选选项的标签,并在JavaScript函数中使用它。
function call(op) {
alert(op.label);
alert(op.name);
alert(op.value);
var x = op.label;
}
然而,这总是作为标签返回,未定义。我试过改变在html中编写选项标签的方式。这可能不是编写java脚本函数的最佳方法。我绝对不能使用选项值,它是一个唯一的id并用于其他东西。关于我做错了什么或者更好的方法来做任何建议?
答案 0 :(得分:0)
要获取所选的<option>
,您需要使用selectedOptions
属性。这是一个数组,因为<select>
标记可以(可选)支持多个选择。此数组包含<option>
个标记对象,因此您应该可以使用op.selectedOptions[0].textContent
获取标签。
答案 1 :(得分:-1)
我想:
<select id="wbox" name="listbox" size="20" onchange="call(this.selectedOptions)">
<optgroup label="Taxes">
<option value="1694" label="DNA-option1">RNA-option1</option>
<option value="1642" label="DNA-option2">RNA-option2</option>
</select>
<script type="text/javascript">
function call(op){
for(var i=0;i<op.length;i++){
console.log('Label: '+ op[i].getAttribute('label'));
}
}
</script>