jQuery - Comparing .parent() to $('#id-name')
jQuery - Comparing .parent() to $('#id-name')
所以我想知道为什么元素的.parent()与jQuery中的$('#id')相比返回false。
我正在尝试在我的代码上的 if 语句中比较它们,如下所示:
if ($navbar.parent() === $('#sticky-wrapper'))
它返回 false,所以我只用简单的 dom 在控制台上做了一些进一步的测试,并得出了下面的输出:
> $('main')
< [<main class="main">…</main>]
> $('body')
< [<body>…</body>]
> $('main').parent()
< [<body>…</body>]
> $('main').parent() === $('body')
< false
> $('main').parent() == $('body')
< false
这对我来说非常令人困惑,因为输出在控制台中看起来相同。有人知道每种方法提供的实际值吗?
任何反馈将不胜感激。
你不能像这样比较jQuery对象,因为每个jQuery对象都是不同的。jQuery 对象引用的 DOM 元素可能与另一个相同,但根 jQuery 对象不会。这就像两个不同的杯子,里面装着相同类型的液体(或者类似的东西,也许描绘同一大陆的两张不同地图就是一个更好的例子)。
你可以做的是通过jQuery比较DOM元素,方法是获取带有get
(引用)的DOM元素。
$('main').parent().get(0) === $('body').get(0) // true
..非常像以下内容也将返回true
:
$('body').parent().get(0) === $('html').get(0) // true
只需尝试一下:
$('main').parent()[0] === $('body')[0]
甚至这个$('main').parent().is($('body'));
使用 is()
.干净易读,易写
if ($navbar.parent().is('#sticky-wrapper'))
相关文章:
- 嵌套数组以及ID和NAME
- 在库(javascript/HTML)中将“name”替换为“id”
- Javascript:如何从不同的ID中获取ID和name属性
- “相同”;name”;因为Onblur和id导致歧义
- 如何将 iframe id/name 发送到 php 文件
- 如何使用JQuery.Load访问Div中加载URL的UL“id”,“name”等,以设置JQuery树视图
- 获取同级的 name 属性,使用它来调整具有等效 ID 的元素的值
- 在 ANGULARJS 中:s.Id as s.Name for s 在 Player 中显示 playerName i
- 在 Laravel 5.2 的发布请求中传递 Algolia id 属性而不是 Name Atributre
- 如何使用 object.id 显示列表中的 object.name
- jQuery移动表行's,并更改id/name
- 设置点击按钮的值为Javascript变量-不使用ID/Name
- jQuery出现管道符号"|"in ID name
- 如何设置'selected'选项的值,其中包含方括号id name
- 移除id name包含特定字符串的元素
- 只获取id/name的单词部分
- 将section id name添加到数组中仅一次
- jQuery:我如何找到特定的输入类型,它's的id/name,然后<td>握住它并拨动它
- jQuery - Comparing .parent() to $('#id-name')
- 在DataTables 1.10.x中设置td id/name的问题