新jQuery选择器
在(可能是您)StackOverflow的帮助下,我最近编写了以下选择器新jQuery选择器,jquery,Jquery,在(可能是您)StackOverflow的帮助下,我最近编写了以下选择器 $(':submit[name="Delete"][value="Delete"]').click(function() { return window.confirm(this.title || 'Delete this record?'); }); 问:现在1.4已经发布,有没有更优雅的方法来编写选择器?jQuery 1.4没有新的选择器来更改该表达式 我强烈建议您为有问题的元素提供一个ID(如果有一个)或一个类(如
$(':submit[name="Delete"][value="Delete"]').click(function() {
return window.confirm(this.title || 'Delete this record?');
});
问:现在1.4已经发布,有没有更优雅的方法来编写选择器?jQuery 1.4没有新的选择器来更改该表达式
我强烈建议您为有问题的元素提供一个ID(如果有一个)或一个类(如果有几个),因为它们比属性选择器快得多。不,没有新的选择器,但是如果您发现自己做了很多类似的事情,您可以创建自己的选择器。这里有一个用途有限的:
$.expr[':'].delete_button = function(el) {
return $(el).is(':submit') && el.name === 'Delete' && el.value === 'Delete';
};
然后,您可以将行更改为:
$('input:delete_button').click(function() {
return window.confirm(this.title || 'Delete this record?');
});
下面是一个更实用的函数,它任意匹配字符串:
$.expr[':'].btn = function(el, i, parts) {
return $(el).is(':submit') && el.name === parts[3] && el.value === parts[3];
};
可以这样称呼:
$('input:btn(Delete)').click(function() {
return window.confirm(this.title || 'Delete this record?');
});
但是,如果您对其他按钮使用相同的命名结构,也会起作用:
$('input:btn(Save)').click(function() {
return window.confirm(this.title || 'Save this record?');
});
+很好的信息。为什么要等到Resig来拯救我们自己能做到的那一天呢!?:)