.not()

.not(seçici) Dönen Değer : jQuery Nesnesi
Açıklama : Seçilmiş olan elemanlardan belirtilen elemanları çıkarır.

.not(seçici)
seçici
Tip : Seçici değer, eleman ya da array
Çıkarılmak istenen elemanları gösteren seçici değeri, DOM elemanı ya da elemanlardan oluşan array değeri.
.not(fonksiyon)
fonksiyon
Tip : Function( Integer index, Element element ) => Boolean
Set içindeki elemanları test etmek için kullanılan bir fonksiyon. İki parametresi var, index test edilen elemanın indexi , element ise DOM elemanı. Ayrıca fonksiyon içinde this test edilmekte olan elemanı ifade eder.
.not(seçim)
seçim
Tip : jQuery nesnesi
Silinmek istenen jQuery nesnesi olarak eleman(lar).

DOM elemanlarından oluşan bir jQuery nesnesi verildiğinde, .not() metodu bu elemanlardan kritere uyanları çıkartır. Parametrede verilen seçici mevcut elemanların her biri ile karşılaştırılır, kritere uyanlar silinir, uymayanlar geri dönen cevbı oluşturur.

Basit bir listemiz olsun :

<ul>
  <li>liste elemanı 1</li>
  <li>liste elemanı 2</li>
  <li>liste elemanı 3</li>
  <li>liste elemanı 4</li>
  <li>liste elemanı 5</li>
</ul>

Bu eleman setine metodu şöyle uygularsak :

$( "li" ).not( ":nth-child(2n)" ).css( "background-color", "red" );

Bu kodun sonucunda .not() metodunda belirtilen kritere uymayan 1, 3 ve 5'inci elemanların arka rengi kırmızı olacaktır.


Parametrenin eleman olarak verilmesi

.not() metodunun bir diğer kullanım şekli, parametreye direk olarak bilinen bir elemanın verilerek set içinden onun çıkarılmasını sağlamak. Diyelim listemizde birinin id değeri var ve onun haricindekileri renklendirmek istiyoruz.

<ul>
  <li>liste elemanı 1</li>
  <li>liste elemanı 2</li>
  <li id="notli">liste elemanı 3</li>
  <li>liste elemanı 4</li>
  <li>liste elemanı 5</li>
</ul>

Üçüncü elemanı seçmek için JavaScript getElementById() metodunu kullanabiliriz.

$( "li" ).not( document.getElementById( "notli" ) )
  .css( "background-color", "red" );

Bu kod 1,2,4 ve 5'inci elemanların arka rengini değiştirirken verilen eleman olan 3'üncü eleman rengine dokunmayacaktır.

JQuery versiyon 1.4'ten sonra .not() metodu parametresinde fonksiyon da kabul etmeye başladı. Çalışması .filter() metoduna benzer. Set içindeki her bir eleman için fonksiyon çalıştırılır ve true değer dönen elemanlar setten çıkarılarak sonuç seti oluşturulur..

Not : .not() metoduna parametre olarak bir CSS seçici değer verilirse, dönen cevap içindeki tüm text ve yorum elemanlar silinir. Parametrede bir eleman ya da eleman array verildiyse yazılar ve yorumlar kritere uymadığ müddetçe dönen cevabın içinde olur.



Örnekler :

Yeşil veya mavi olmyan tüm <div> elemanlara çerçeve çizer :

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>JQuery Öğrenimi</title>
        <script src="jquery.js"></script>
        <style>
            div {
                width: 50px;
                height: 50px;
                margin: 10px;
                float: left;
                background: yellow;
                border: 2px solid white;
            }
            .green {
                background: #8f8;
            }
            .gray {
                background: #ccc;
            }
            #blueone {
                background: #99f;
            }
        </style>
    </head>
    <body>
        <div></div>
        <div id="blueone"></div>
        <div></div>
        <div class="green"></div>
        <div class="green"></div>
        <div class="gray"></div>
        <div></div>
        <script>
            $( "div" ).not( ".green, #blueone" )
                .css( "border-color", "red" );
        </script>
    </body>
</html>


id değeri selected olan ilk paragrafı setten çıkarır.

$( "p" ).not( $( "#selected" )[ 0 ] );

id değeri selected olan tüm paragrafları setten çıkarır.

$( "p" ).not( "#selected" );

"div p.selected" seçicisine uyan tüm elemanları paragraflardan çıkartır.

$( "p" ).not( $( "div p.selected" ) );

.

.