(DOM をトラバースすることによって) jQuery セレクターの結果が実際に DOM 要素を見つけたかどうかを判断しようとしていますが、いくつか問題があります。変数がこのインスタンスと等しいundefined
か、または機能するかどうかを確認することで考えましたが、そうではありませんでした。null
ここで基本的な何かが欠けているように感じます。どんな助けでも大歓迎です。
これが私の例です。
HTML
<ul>
<li>
</li>
</ul>
<div id="results"></div>
JavaScript/jQuery
var
$element = $("ul li"),
$parent = $element.parent().closest("li"),//this is the selector that is giving me the issue
$r = $("#results")//just used to append the results of the if statement below
;
$r.append("<br />$parent = " + $parent);
$r.append("<br />typeof $parent = " + typeof $parent);
$r.append("<br />$parent.length = " + $parent.length);
$r.append("<br />$parent[0] = " + $parent[0] + "<br />");//for Chrome
if ($parent === "null") { $r.append("<br />$parent === 'null'") }//not expected to work, just testing
if ($parent === null) { $r.append("<br />$parent === null") }//not expected to work, just testing
if ($parent == null) { $r.append("<br />$parent == null") }//not expected to work, just testing
if ($parent === "undefined") { $r.append("<br />$parent === 'undefined'") }
if ($parent === undefined) { $r.append("<br />$parent === undefined") }
if ($parent == undefined) { $r.append("<br />$parent == undefined") }
if ($parent[0] === "undefined") { $r.append("<br />$parent[0] === 'undefined'") }
if ($parent[0] === undefined) { $r.append("<br />$parent[0] === undefined") }
if ($parent[0] == undefined) { $r.append("<br />$parent[0] == undefined") }
if (typeof $parent === "undefined") { $r.append("<br />typeof $parent === 'undefined'") }
if (typeof $parent === undefined) { $r.append("<br />typeof $parent === undefined") }
if (typeof $parent == undefined) { $r.append("<br />typeof $parent == undefined") }
if (typeof $parent[0] === "undefined") { $r.append("<br />typeof $parent[0] === 'undefined'") }
if (typeof $parent[0] === undefined) { $r.append("<br />typeof $parent[0] === undefined") }
if (typeof $parent[0] == undefined) { $r.append("<br />typeof $parent[0] == undefined") }
if ($parent.length == 0) { $r.append("<br />$parent.length == 0") }
これらが返されtrue
ました。$parent[0] === undefined
そして$parent[0] == undefined
そしてtypeof $parent[0] === 'undefined'
;
jQuery セレクターが DOM オブジェクトを見つけられず、 element がないため、これは理にかなっています[0]
。console.log
Chromeのオブジェクトで使用するにはこれが必要なため、これを試しただけです。しかし、私はこれが正しいとは思いません。
$parent.length == 0
期待どおりに動作します。しかし、これは!== undefined' and
!== null` で必要ですか?
前もって感謝します!