0

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

4 に答える 4

4

以下が機能するはずです。

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

デモ:http: //jsfiddle.net/3Sqjh/

于 2012-07-11T08:27:20.410 に答える
1

このようにしますか?

$("#selectName").change(function(){
    $val = $('#selectName :selected').parent().attr('label');
    alert($val);
});
于 2012-07-11T08:29:45.397 に答える
0

選択した要素の親グループのラベルテキストを使用してアラートを作成します。

var $group = $('#selectName option:selected').parent();
alert($group.attr("label"));
于 2012-07-11T08:26:38.520 に答える
0
$('select').change(function(e){
  var group = $('select option:selected').parent('optgroup');
  var groupText = group.attr('label');
});

JSBinのデモ

于 2012-07-11T08:47:40.757 に答える