2017-01-15 7 views
1

私は他の要素の子ではないすべての要素を取得したいと思います。querySelectorに空白を使用しないでください

document.querySelector("span:not(p span)") 

そのiが何をすればいいの、クロームでは動作しません: は、私は(私には完全に有効なCSS3のセレクタのように思える)。このコードの例を試してみましたか?

+0

notフィルタとして、そのクラスを使用することができます[MCVE] – charlietfl

+0

@charlietfl提供:単一のコード行は、あなたが必要とするすべてMCVEされていることを。それを実行すると、SYNTAX_ERRがスローされます。 – BoltClock

+0

@BoltClockはサンプルHTMLのラインに沿って考えていました。重要ではないかもしれませんが、確かに役立ち、仕事をする傾向が少なくなります – charlietfl

答えて

1

はすべてp spanにクラスを追加してから

var pSpans = document.querySelector("p span"); 
for(var i=0; i<pSpans.length; i++){ 
    pSpans[i].classList.add('p-span'); 
} 

var notPspans = document.querySelector("span:not(.p-span)") 
1

Support for the selector list argument of :notは現在SafariとMobile Safariに限られています。他のブラウザはまだそれをサポートせず、代わりにセレクタを無効として扱います。

基本:not()のサポートでは、子孫コンビネータをサポートしていないの単純なセレクタがサポートされています。

代替は、あなたが取ることができるかもしれアプローチは、次のとおりです。

  • のためにすべてのspan秒ルールを設定し、その後p span要素ごとに異なるルールを書きます。
  • body > spanなど、他の方法で要素に一致するセレクタを書き込む。

具体的な内容は、マークアップの正確な性質によって異なります。

関連する問題