如果我们可以使用jQuery找到所选值属于HTML Select标签中的某个类别

时间:2012-07-11 08:22:57

标签: jquery html html-select optgroup

我真的很想知道是否有办法在HTML选择标记中找到所选选项的选定组。

我想到获得所选值的父级但无法获得正确的解决方案。但我们也不能排除这个选项。

<select id="selectName">
    <option value="0">-- Select --</option>
    <optgroup label="Section -- 1">
        <option value="1">One</option>
        <option value="2">Two</option>
        <option value="3">Three</option>
        <option value="4">Four</option>
    </optgroup>
    <optgroup label="Section -- 2">
        <option value="100">Hundred</option>
    </optgroup>
</select>

我不想写这样的代码......

$val = $('#selectName').val()

if($val >=1 && $val <= 4){/* ... */}
else if(/*-- another range --*/){/* ... */}

我想知道是否有办法找到群组名称。

感谢。

4 个答案:

答案 0 :(得分:4)

以下内容应该有效:

var optgroup = $("#selectName :selected").parent("optgroup");
if (optgroup.length) {
    var label = optgroup.attr("label");
    if (label == " ... ") {
        // do something
    }
}

DEMO: http://jsfiddle.net/3Sqjh/

答案 1 :(得分:1)

你想这样吗?

$("#selectName").change(function(){
    $val = $('#selectName :selected').parent().attr('label');
    alert($val);
});

答案 2 :(得分:0)

使用所选元素的父组的标签文本创建警报:

var $group = $('#selectName option:selected').parent();
alert($group.attr("label"));

答案 3 :(得分:0)

$('select').change(function(e){
  var group = $('select option:selected').parent('optgroup');
  var groupText = group.attr('label');
});

Demo on JSBin