JQueryではなくJavaScriptを使用して、特定のクラスを持たない要素を選択する方法を考えています。
たとえば、次のリストがあります。
<ul id="tasks">
<li class="completed selected">One Task</li>
<li>Two Task</li>
</ul>
完了したタスクを次の方法で選択します。
var completeTask = document.querySelector("li.completed.selected");
しかし、それらのクラスを持たないリストアイテムを選択する方法がわかりません。
これにより、2番目の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>
completed
またはselected
クラスを持たない<li>
を選択するには:
document.querySelector("li:not(.completed):not(.selected)");
フィドル
:not()
セレクターを試すことができます
var completeTask = document.querySelector("li:not(.completed):not(.selected)");
document.querySelectorAll('[wf-body=details] input:not(.switch):not(.btn)').forEach(function(e){
// do whatever you want. with 'e' as element :P
});
代わりに、親の子の配列を取得してください:
var completeTask = document.querySelector("#tasks").childNodes;
次に、必要に応じてループ/検索します。