2016-10-20 2 views
0

普通のjavascriptで$(":not(selector)")を書くにはどうすればいいですか?

のjQuery:

var links = $('a:not(.not-lightbox-item a)', this); 

HTML:

<div id="links"> 
    <div class="not-lightbox-item"> 
     <a href="projects.html" class="button-back"> 
      <span class="glyphicon glyphicon-hand-left glyphicon-circle-arrow-leftx" title="Back"></span> 
     </a> 

     <h2 class="heading item-heading">(Title) Ways of Something</h2> 

     <p>Lorem ipsum dolor sit amet <a href="#">Excepteur sint occaecat</a> cupidatat non proident</p> 
    </div> 

    <a href="images/banana.jpg" title="Banana"> 
     <img src="images/thumbnails/banana.jpg" alt="Banana"> 
    </a> 
    <a href="images/apple.jpg" title="Apple"> 
     <img src="images/thumbnails/apple.jpg" alt="Apple"> 
    </a> 
    <a href="images/orange.jpg" title="Orange"> 
     <img src="images/thumbnails/orange.jpg" alt="Orange"> 
    </a> 
</div> 

任意のアイデア?

+3

'document.querySelectorAll'。 –

+0

document.querySelector( ":not(yourselectors)") –

+1

アップ討議質問。それは合法だ。 –

答えて

3

のような二重否定よりも.lightbox-itemのようなクラスを使用することが明確に(そしておそらくより速い)であります純粋なCSSでそれにセレクタが適用されているクラス?

.className { 
    color: blue; 
} 

var myitem = document.querySelector('.item') 
myitem.classList.toggle('className'); 

私は、HTMLを制御できない場合だけでなく、

+0

ありがとう。私は 'links = this.getElementsByClassName( 'lightbox-item');'の代わりに使うと思います。 – laukok

1

使用document.querySelectorまたはdocument.querySelectorAll:しかし@George Katsanosが正しい

//returns first element matching 
document.querySelector("a:not(.not-lightbox-item a))"); 
//returns all elements matching 
document.querySelectorAll("a:not(.not-lightbox-item a))"); 

、それはトグルしないのはなぜa:not(.not-lightbox-item a))

+1

なぜdownvoting? – n00dl3

+1

今日はとても厄介な人!ありがとう。 – laukok