0

選択したいアンカータグがたくさんあります。しかし、これらのリンクの 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");
     });

選択を実現するために、フィルター メソッドを 2 回使用する必要がありました。例:

jQuery("a[href]").filter("[href!='#']").filter("[href!='']").each(function() {
    jQuery(this).addClass("selected");
 });

本当にこれを行う必要がありますか、それとも 1 つのフィルター メソッド内で複数のセレクターを使用できますか?

4

2 に答える 2

5
jQuery("a[href]").filter("[href!='#'][href!='']").each(function() {
    jQuery(this).addClass("selected");
});

詳細については、 http://api.jquery.com/multiple-attribute-selector/を参照してください。

于 2012-06-20T10:38:38.820 に答える
0

もう少し冗長で、より簡単に理解できるようにしたい場合は、次を使用できます。

jQuery('a[href]').filter(
    function(){
        var href = jQuery(this).attr('href');
        return (href.indexOf('#') > -1 && href.length);
    }).addClass('selected');

JS フィドルのデモ

参考文献:

于 2012-06-20T10:47:17.300 に答える