एलिमेंट का चयन कैसे करें कि इसमें विशिष्ट वर्ग नहीं है


94

मैं सोच रहा हूं कि ऐसे तत्व का चयन कैसे किया जाए जिसमें जावास्क्रिप्ट का उपयोग करने वाला विशिष्ट वर्ग न हो, न कि jQuery का।

उदाहरण के लिए, मेरे पास यह सूची है:

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

और मैं इसके द्वारा पूर्ण कार्य का चयन करता हूं:

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

लेकिन तब मुझे यकीन नहीं है कि सूची आइटम का चयन कैसे करें, जिसमें उन कक्षाएं नहीं हैं।

जवाबों:


172

यह दूसरे LIतत्व का चयन करता है ।

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

या

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

उदाहरण:

// 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

<li>उस वर्ग का चयन करने के लिए जिसका न completedही selectedवर्ग है और न ही

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

बेला

http://jsfiddle.net/Z8djF/


रिवर्स कैसे करें : अर्थात् , उन सभी तत्वों का चयन करें जिनमें कक्षा completedऔर selectedकक्षा दोनों हों ?
user2284570 22

@ user2284570 बस दोनों वर्गों को बिना व्हाट्सएप के लिखें: li.completed.selected-> यह उन सभी liतत्वों से मेल खाएगा जिनके पास completedएंड selectedक्लास है
BeNdErR



1

इसके बजाय माता-पिता के बच्चों की एक सरणी प्राप्त करने का प्रयास करें:

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

फिर लूप / उन्हें आवश्यक रूप से खोजें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.