微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐