この.not()
メソッドは、フィルターに使用するセレクターまたはオブジェクトのいずれかを取ります。
この.contents()
メソッドは、要素の子ノードとテキスト ノードを含む jQuery オブジェクトを返します 。
セレクターを引数として使用すると、選択した要素だけでなく、すべてのテキスト ノード.not()
も削除されます。
オブジェクトを引数として使用すると、オブジェクトは.not()
削除されますが、テキスト ノードは削除されません。
例:
<p>This is a <span id="aSpan">paragraph</span> tag</p>
$("p").contents().not("span");
> []
しかし!
var $sp = $("p span");
$("p").contents().not($sp);
> ["This is a ", " tag"]
また
var sp = document.getElementById("aSpan");
$("p").contents().not(sp);
> ["This is a ", " tag"]
「スパン」セレクター (またはその他のセレクター) によってテキスト ノードが選択されるのに、オブジェクト インスタンスによって選択されないのはなぜですか?