0
<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 并用于其他用途。关于我做错了什么或更好的方法的任何建议?

4

2 回答 2

0

要获得 selected <option>,您需要使用该selectedOptions属性。这是一个数组,因为<select>标签可以(可选地)支持多选。该数组包含<option>标签对象,因此您应该能够使用op.selectedOptions[0].textContent.

于 2012-12-06T02:29:10.607 回答
-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>
于 2012-12-06T02:24:45.787 回答