通过文本查找选择选项
任何人都可以告诉我为什么它可以在旧版本的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例如,运行该页面,this error出现在我的Opera脚本控制台:
http://s15.postimage.org/5yhodvirt/ess.png
这似乎是一个 “mootools的” file..but我没有选择的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();
});
});
嗨,看到我对另一个谁建议包含的评论 – 2012-08-14 10:45:21
嗯,只是试过,但似乎也没有工作。虽然没有得到任何控制台错误。编辑:现在得到它的工作,不得不改变“输入”到“选项”谢谢。 – 2012-08-14 10:54:44
@ user1597762是的,欢迎您。 – undefined 2012-08-14 10:57:20
嗨,包含对此没有任何好处,因为它必须完全匹配。包含('unit2')例如也会匹配'unit200',并且会有很多选择菜单和选项。 – 2012-08-14 10:44:49
试试这个
$(function(){
$('#my_button').click(function(){
var unitName = "Unit2";
$(".assUnit option:contains('"+unitName+"')").remove();
});
});
哈哈,你说'屁股'。 – RubeOnRails 2015-02-19 21:04:42