0

私はこのようなドロップダウンを持っています、

<div class="my_div">
    <select name="selection" id="select_id">
        <option value="0">A</option>
        <option value="5">B</option>
        <option value="6">C</option>
        <option value="7">D</option>
        <option value="8">D</option>
        <option value="9">F</option>
    </select>
</div>

私のリンクは次のようになります。

<a class="links" href="#">Disable A C D</a>
<a class="links" href="#">Disable B E F</a>

私のスクリプトは次のようになります。

$(document).ready(function(){
    $('.links a').click(function(){
        var txt = $(this).text();       

        if( txt == 'Disable A C D'){
            $('div.my_div #select_id').find("option[value='0']").hide();
            $('div.my_div #select_id').find("option[value='6']").hide();
            $('div.my_div #select_id').find("option[value='7']").hide();
        }
    });
});

これは動作しFirefoxますChromeが、オプションを無効にすることだけが動作しIE、非表示にすることはできません。何が恋しいですか?乾杯!

4

4 に答える 4

0

リンクのセレクターが間違っていました。これを試して:

$('a.links')

このフィドルは IE で動作します (少なくとも 9): http://jsfiddle.net/gromer/2qyT7/1/

そのフィドルにはいくつかのconsole.logsがあり、IEを怒らせる可能性があることに注意してください。

optionIE では非表示になりませんが、無効になっています。

編集:SOで見つけた要件と回答に基づいて、IEのこの回避策をまとめました。

新しいフィドル: http://jsfiddle.net/2qyT7/19/

于 2012-10-12T18:25:53.500 に答える
0

FFでのみ機能し、機能しないはずです。(この jsFiddle を参照)

この質問もすでに聞かれました。

選択リストからオプションを本当に削除したい場合は、非表示にするのではなく、完全に削除する必要があります。それらを元に戻したい場合は、代わりにメモリ内の他の配列に移動してください。

于 2012-10-12T18:41:07.710 に答える
0

... Chrome で動作しますか? http://jsfiddle.net/KEfjM/2/これは、jQuery の問題ではなく、CSS/ブラウザーのサポートの問題です。唯一の解決策は、選択からオプションを削除することです。

$(document).ready(function(){
    $('.links a').click(function(){
        var txt = $(this).text();    
        if( txt == 'Disable A C D'){
           $('#select_id').find("option[value='0'],option[value='6'],option[value='7']").detach();
        }
    });
});
于 2012-10-12T18:38:36.073 に答える
0

あなたのコード例は、どのブラウザーでも機能しません。

「.links a」は「.links」または「a.links」である必要があり、「#select_id」が正常に機能する場合は「div.my_div #select_id」は必要ありません。

display: noneあなたの質問には、IE がOption 要素を好まないようです。必要に応じて、Select のオプションをプログラムで削除および追加する必要があります。

于 2012-10-12T18:35:33.693 に答える