javascript – 通过文本查找选择选项

前端之家收集整理的这篇文章主要介绍了javascript – 通过文本查找选择选项前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
任何人都可以告诉我为什么这在旧版本的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();
    });

});

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

例如,当我将版本更改为1.8.0并运行该页面时,我的Opera脚本控制台中出现了this error

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

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

:/

谢谢.

解决方法

您正在使用 Attribute Equals选择器,它选择具有与某个值完全相同的值的指定属性的元素,选项元素不具有文本属性,可以使用 :contains选择器,请尝试:

Select all elements that contain the specified text.

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

FIDDLE

如果要选择仅具有某些值的元素,可以使用过滤器方法

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

FIDDLE

猜你在找的JavaScript相关文章