2011-08-15 13 views
3

私は入力を見つけるjqueryのセレクタの質問

に私を可能にjqueryのセレクタを必要とする(/オプションを選択)ドロップダウン - SELECTの名前がACTCおよび ある - 選択された値が、私はそれが何かだと思うABC

ですlike:

myTmpl.find("input[name='ACTC']").val('ABC'); 

答えて

2

私は実際にあなたがしようとしているアプリケーションでは表示されません。 「ACTC」という名前の選択ボックスの現在の値を取得し、それが「ABC」かどうかを確認するだけではどうですか?

var selectBox = $('select[name="ACTC"]'); 
var selectValue = $(selectBox).val(); 

if (selectedValue == 'ABC'){ 
    // use the 'selectBox' variable as it references your <select> element 
} 
else{ 
    // do something else or nothing at all 
} 

<option>タグのセレクタは次のようになります。

$('select[name="ACTC"] option[value="ABC"]'); 

あなたが値を持つオプション「ABC」を選択した場合は、そのようにチェックすることができます表示する場合:

// if the following line of code > 0 then the option is selected 
$('select[name="ACTC"] option[value="ABC"]:selected').length; 

実際に特定のオプションを選択してマークする場合は、次のようにします。

$('select[name="ACTC"] option[value="ABC"]').attr({selected:true}); 

あなただけの「ABC」の選択した値と<select>ボックスを検索する場合(のみあなたが同じ名前の複数選択ボックス持っていた場合に必要になりますあなたの心は、この):

$('select[name="ACTC"] option[value="ABC"]:selected').closest('select'); 
+0

である場合、これは「ACTC」のクラス名を持つ選択/オプションから現在選択されている値を取得しますこれで唯一の「問題」はということです'select'ではなく' option'を選択します。彼の答えに記述されているフレデリックのような ':has()'セレクタが必要です。 – Kokos

+0

最後のコード行でこれを解決しました。 – Ryan

+1

私はそれもうまくいくと思います:) ':has()'メソッドよりも速いとは思いませんが、もう一度違いは気にならないと思います^^。 – Kokos

1

それはできません実際には<option>要素に属しているため、attribute equalsセレクタをvalueのまわりで使用することはできません。

ただし、:has():selectedを組み合わせることができます。

var select = myTmpl.find("select[name='ACTC']:has(option[value='ABC']:selected)"); 

あなたはthis fiddleでそれをテストすることができます。

1

値が「ABC」

$(document).ready(function() { 
$("input").click(function() { 
    if ($('.ACTC option:selected').val() == 'ABC') { 
     alert("ABC Selected"); 
    } 
    else 
    { 
     alert("ABC not select"); 
    } 
}); 
}); 
1
var select = $('select[name="ACTC"]').filter(function(e) { return e.value == 'ABC'; })