jquery - 上下文 jQuery 选择器没有找到一些元素,为什么?
问题描述
如果我按照文档context
中的描述正确理解了参数,则以下是预期的两个项目的集合:p
const text = "<body><div class='a'> <p>Test</p> <p>Test 2</p> </div></body>";
const p = $("p", text);
但是为什么以下都没有返回结果呢?
const d = $("div", text);
const b = $("body", text);
解决方案
如果您查看从 创建的 jQuery 对象的 outerHTML text
,您会看到该body
元素已被删除。这是因为您不能body
使用 jQuery 附加元素。一个应该已经存在于 DOM 中,并且您不能附加另一个。
因此,在jQuery 对象body
中找不到任何元素。text
这是一个演示:
const text = $("<body><div class='a'> <p>Test</p> <p>Test 2</p> </div></body>");
console.log(text[0].outerHTML) // no body!
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
正如您在上面的输出中看到的,div
then 成为 jQuery 对象的根元素。
从那里你有效地然后执行$('div').find('div')
- 即。试图在包含它的元素中查找元素。因此没有返回任何内容。
推荐阅读
- javascript - 如何修改对象并转换为对象数组javascript
- google-apps-script - 使用自定义比较器功能对一系列单元格中的背景颜色进行排序
- sql - 如何将多条记录插入到相同的复数 ID
- typescript - 是否可以像在 Typescript 中一样在 Dart 中使用类属性作为类型?
- python - 数组中的重复对
- html - 将 JQuery 值附加到输入字段而不是选择选项
- driver - 在 Ubuntu 18.04 集群上安装 NetSuite 64 位 ODBC 驱动程序给出错误:- 无法打开 lib '/opt/netsuite/odbcclient/lib64/ivoa27.so
- javascript - 在 Acorn 中禁用重复声明验证
- python - Python 从网站获取特定数据
- android - 更改实施找不到 org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.21