我正在尝试确定 jQuery 选择器的结果(通过遍历 DOM)是否确实找到了 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 对象并且没有元素[0]
。我只尝试过这个,因为console.log
在 Chrome 中使用对象需要这个。但我不认为这是正确的。
$parent.length == 0
按预期工作。但是这需要一个!== undefined' and
!== null` 吗?
提前致谢!