我想要选择一堆锚标签。但是如果这些链接的href属性等于“#”或“”(空字符串),那么我想从选择中排除它们。
目前,如果href 不等于“#”,我会有以下内容过滤掉所选内容:
在此演示: http://jsfiddle.net/dzrRS/2/
jQuery("a[href]").filter("[href!='#']").each(function() {
jQuery(this).addClass("selected");
});
然后我尝试将此更改为以下内容,以便在href也不等于“”时过滤掉选择。 但是这不起作用。
jQuery("a[href]").filter("[href!='#'], [href!='']").each(function() {
jQuery(this).addClass("selected");
});
为了实现我的选择,我必须使用过滤方法两次。 e.g :
jQuery("a[href]").filter("[href!='#']").filter("[href!='']").each(function() {
jQuery(this).addClass("selected");
});
我真的需要这样做,还是可以在一种过滤方法中使用多个选择器?
答案 0 :(得分:5)
jQuery("a[href]").filter("[href!='#'][href!='']").each(function() {
jQuery(this).addClass("selected");
});
有关详细信息,请参阅http://api.jquery.com/multiple-attribute-selector/。
答案 1 :(得分:0)
如果你想要稍微冗长一点,并且可能更容易理解,你可以使用:
jQuery('a[href]').filter(
function(){
var href = jQuery(this).attr('href');
return (href.indexOf('#') > -1 && href.length);
}).addClass('selected');
参考文献: