按文本查找选择选项

CMR*_*CMR 9 javascript jquery mootools

任何人都可以告诉我为什么这可以在旧版本的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();
    });

});
Run Code Online (Sandbox Code Playgroud)

我已经在控制台中检查了更高版本的错误输出,并且在我加载我的脚本并且能够单击按钮之前,页面加载上似乎发生了错误.

当我将版本更改为1.8.0并运行页面时,我的Opera脚本控制台中出现此错误:

http://s15.postimage.org/5yhodvirt/ess.png

这似乎是在一个"mootools"文件..但我没有选择mootools,我选择了jQuery 1.8.0

:/

谢谢.

und*_*ned 15

您正在使用Attribute Equals选择器选择具有指定属性的元素,其值完全等于某个值,选项元素没有text属性,您可以使用:contains选择器,尝试这样:

选择包含指定文本的所有元素.

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

小提琴

如果要选择仅具有特定值的元素,可以使用以下filter方法:

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

小提琴