任何人都可以告诉我为什么这在旧版本的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(); }); });
如果要选择仅具有某些值的元素,可以使用过滤器方法:
$(function(){ $('#my_button').click(function(){ var unitName = "Unit2"; $('.assUnit option').filter(function() { return $(this).text() === unitName }).remove(); }); });