10

これが古いバージョンのjQuery(1.4.2など)で機能する理由を教えてもらえますか?(1.6 +など)新しいバージョンに切り替えると機能しなくなりますか?

http://jsfiddle.net/nmvf6/1194/

$(function(){
    $('#my_button').click(function(){
        var unitName = "Unit2";
        $('.assUnit').find('option[text="'+unitName+'"]').remove();
    });

});

</p>

新しいバージョンのコンソールでエラー出力を確認しましたが、スクリプトをロードしてボタンをクリックできるようになる前に、ページのロードでエラーが発生したようです..

たとえば、バージョンを 1.8.0 に変更してページを実行すると、Opera スクリプト コンソールに次のエラーが表示されます。

「mootools」ファイルにあるようですが、mootools を選択せず​​、jQuery 1.8.0 を選択しました

:/

ありがとう。

4

3 に答える 3

15

Attribute Equals特定の値と正確に等しい値を持つ指定された属性を持つ要素を選択するセレクターを使用しています。オプション要素にはtext属性がありません:contains。代わりにセレクターを使用できます。これを試してください:

指定したテキストを含むすべての要素を選択します。

$(function(){
    $('#my_button').click(function(){
        var unitName = "Unit2";
        $('.assUnit').find('option:contains('+unitName+')').remove();
    });
});

フィドル

filter特定の値のみを持つ要素を選択する場合は、次のメソッドを使用できます。

$(function(){
    $('#my_button').click(function(){
        var unitName = "Unit2";
        $('.assUnit option').filter(function() {
             return $(this).text() === unitName
        }).remove();
    });
});

フィドル

于 2012-08-14T10:35:36.287 に答える
2

あなたはおそらくこれでもっと運がいいでしょう:

$('.assUnit').find('option:contains('+unitName+')').remove();

参照: :contains() セレクター

于 2012-08-14T10:34:58.970 に答える
1

これを試して

$(function(){
    $('#my_button').click(function(){
       var unitName = "Unit2";
       $(".assUnit option:contains('"+unitName+"')").remove();
   });

});
于 2012-08-14T11:11:03.013 に答える