首页 > 解决方案 > jQuery contains 方法只返回 false

问题描述

https://www.google.ca/上,我试图查看正文是否包含特定的类或特定的 id((.content,#main),它确实如此)。但是, contains() 方法只返回 false。我不明白为什么。

谁能解释这是为什么?

var jqry = document.createElement('script');
jqry.src = "https://code.jquery.com/jquery-3.3.1.min.js";
document.getElementsByTagName('head')[0].appendChild(jqry);
jQuery.noConflict();

$.contains($('body'), $('.content')) #returns false
$.contains($('body'), $('#main')) #returns false

此外,使用 vanilla JavaScript 选择器,下面的代码可以工作,但上面的代码不行,这是有原因的吗?

$.contains(document.body, document.getElementsByClassName('content')[0]) #returns true
$.contains(document.body, document.getElementById('main')) #returns true

标签: jquery

解决方案


来自 jQuery 文档:

注意:第一个参数必须是 DOM 元素,而不是 jQuery 对象或纯 JavaScript 对象。

我对其进行了测试,但显然这两个元素都需要是 DOM 元素:

var jqry = document.createElement('script');
jqry.src = "https://code.jquery.com/jquery-3.3.1.min.js";
document.getElementsByTagName('head')[0].appendChild(jqry);
jQuery.noConflict();

const ele = $("#main")

$.contains(document, ele[0])

推荐阅读