繁体   English   中英

按文本查找选择选项

[英]find select option by text

任何人都可以告诉我为什么这适用于旧版本的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脚本控制台中出现此错误

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

:/

谢谢。

您正在使用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();
    });
});

小提琴

你可能会有更多运气:

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

另请参见:: contains()选择器

试试这个

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

});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM