使用普通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代码所示?
答案 0 :(得分:0)
动态创建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