2012-07-11 19 views
0

我真的很撓我的頭,以查找是否有任何方法來查找HTML選擇標記中選定選項的選定組。如果我們可以找到所選的值屬於某個類別的HTML選擇標記使用jQuery

我想讓父母選定的價值,但不能得到正確的解決方案。但我們也不能排除這個選項。

<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

下面應該工作:

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

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

+0

是的,這是正確的。我可以像這樣得到父母。但我不能玩標籤。標籤可能一直都不一樣。思考國際化。但attr()給了我另一個想法,我可以使用自己的標籤來區分。 – 2012-07-11 08:38:22

+0

我添加了另一個屬性,可以解決我的問題。謝謝。 http://jsfiddle.net/3Sqjh/2/ – 2012-07-11 09:16:54

0

創建具有所選元素的父組的標籤文本警報:

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

你想要這樣嗎?

$("#selectName").change(function(){ 
    $val = $('#selectName :selected').parent().attr('label'); 
    alert($val); 
}); 
0
$('select').change(function(e){ 
    var group = $('select option:selected').parent('optgroup'); 
    var groupText = group.attr('label'); 
}); 

Demo on JSBin

相關問題