如何在'option'标签上获取'name'属性

时间:2013-11-25 16:37:45

标签: javascript jquery

<select name="/static/images/legends/default.png" class="legend-icon">
    <option class="legend-icon" name="/static/images/legends/icon1.png">option1</option>
    <option class="legend-icon" name="/static/images/legends/icon2.png">option2</option>
    <option class="legend-icon" name="/static/images/legends/icon3.png">option3</option>
</select>

当组合框的值发生变化时,我想要新选择的'名称'。这有可能吗?如果有,怎么样?我试过这个:

$('select').change(function(e) {
    alert(e.delegateTarget.name);
});

这会警告'select'标记的'name'。但我需要'option'标签的名称。有什么帮助吗?

3 个答案:

答案 0 :(得分:2)

这是一个解决方案:

http://jsfiddle.net/HLYYB/

$('select').change(function(e) {
    console.log($('option:selected', this).attr('name'));
});

答案 1 :(得分:2)

您需要找到所选选项,然后找到其名称属性值

$('select').change(function (e) {
    alert($(this).find(':selected').attr('name'));
});

演示:Fiddle

答案 2 :(得分:2)

$('select').change(function(e) {
    console.log($(this).find('option:selected').attr('name'));
});

http://jsfiddle.net/xZf42/

注意:正如@meagar在对您的问题的评论中提到的那样,name不是option元素的标准属性。请考虑使用前缀为data-的自定义属性:

<option class="legend-icon" data-name="/static/images/legends/icon1.png">
    option1
</option>