javascript - 使用 jQuery 在新文档中创建元素
问题描述
使用纯 JavaScript(没有 jquery),我可以打开一个新窗口(或选项卡)并将最小的 HTML 文档写入该窗口,如下所示:
var minimal = '<!DOCTYPE HTML>\n' +
'<html>\n' +
'<head>\n' +
'<meta charset="utf-8">\n' +
'<title>Title Here</title>\n' +
'</head>\n' +
'<body>\n' +
'</body>\n' +
'</html>\n';
var win = window.open();
var doc = win.document;
doc.open('text/html', true);
doc.write(minimal);
doc.close();
然后我可以使用纯 JavaScript 动态创建子元素并将其添加到新文档中,如下所示:
var body = doc.getElementsByTagName('body')[0];
var div = doc.createElement('div');
div.innerHTML = 'Hi Mom!';
body.appendChild(div);
请注意,我正在使用上面的代码,doc
而不是document
在新文档中创建一个 div。
我对jquery的理解是这段代码
var div = $('<div/>');
会在当前文档而不是新文档中创建一个div,在当前文档中创建的div不能添加到新文档中。有没有办法让 jquery 在新文档中创建元素,如上面我的纯 JavaScript 代码所示?
解决方案
动态创建 DOM 元素而不将它们附加/父级到其他 DOM 元素将被丢弃。
var div = $('<div></div>'); // will create a div and wait for you to append it
所以你可以说:
div.appendTo("body"); // this will append it body
或者你可以说:
div.appendTo(win.document); // the div will be appended somewhere else
推荐阅读
- flutter - 如何在 Flutter WebView 中下载文件?
- excel - 如何在新类对象的声明中使用单元格值?
- grpc - GRPC io.grpc.StatusRuntimeException:不可用:io 异常
- node.js - 如何使用 nodejs 在 Linux 中创建新用户
- javascript - 在循环的最后一次迭代时发出警报
- batch-file - 如何将 ping 命令的输出传递给批处理文件中的变量?
- reactjs - 来自 React-router-dom 的样式组件,不适用于样式组件
- native - 原生 VR 应用开发
- python-3.x - 尝试跳过列表中的 unicode 值以写入树视图
- javascript - 如何使用javascript更改href值?