Belirli Bir Sınıfı Olmayan Eleman Nasıl Seçilir


94

JQuery'yi değil, JavaScript'i kullanarak belirli bir sınıfa sahip olmayan bir öğeyi nasıl seçeceğimi merak ediyorum.

Örneğin, şu listem var:

<ul id="tasks">
  <li class="completed selected">One Task</li>
  <li>Two Task</li>
</ul>

ve tamamlanan görevi şu şekilde seçiyorum:

var completeTask = document.querySelector("li.completed.selected");

Ancak bu sınıflara sahip olmayan liste öğesini nasıl seçeceğimi bilmiyorum.

Yanıtlar:


172

Bu, ikinci LIöğeyi seçer .

document.querySelector("li:not([class])")

veya

document.querySelector("li:not(.completed):not(.selected)")

Misal:

// select li which doesn't have a 'class' attribute...
console.log(document.querySelector("li:not([class])"))

// select li which doesn't have a '.completed' and a '.selected' class...
console.log(document.querySelector("li:not(.completed):not(.selected)"))
 <ul id="tasks">
    <li class="completed selected">One Task</li>
    <li>Two Task</li>
  </ul>


17

Seçmek için <li>değil sahip olduğunu completedne de selectedsınıfı:

document.querySelector("li:not(.completed):not(.selected)");

Vaktini boşa harcamak

http://jsfiddle.net/Z8djF/


Nasıl ters yapmak , her ikisine de sahip tüm elemanları seçmek edilir: completedve selectedsınıf?
user2284570

@ user2284570 her iki sınıfı da boşluksuz yazın: li.completed.selected-> bu AND sınıfına lisahip tüm öğelerle eşleşecekcompletedselected
BeNdErR


2
document.querySelectorAll('[wf-body=details] input:not(.switch):not(.btn)').forEach(function(e){
    // do whatever you want. with 'e' as element :P
});

1

Bunun yerine ebeveynin çocuklarından oluşan bir dizi almayı deneyin:

var completeTask = document.querySelector("#tasks").childNodes;

Sonra gerektiği gibi döngü yapın / arayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.