JavaScript追加和预结束在IE中不起作用
我正试图通过点击按钮在文本区域内追加和前置一个HTML块,但它在Internet Explorer中不起作用JavaScript追加和预结束在IE中不起作用,javascript,jquery,html,web,web-applications,Javascript,Jquery,Html,Web,Web Applications,我正试图通过点击按钮在文本区域内追加和前置一个HTML块,但它在Internet Explorer中不起作用 $(document).ready(function () { "use strict"; $('#export-file').click(function () { document.getElementById("codeToSave").prepend('<!doctype html>\n<h
$(document).ready(function () {
"use strict";
$('#export-file').click(function () {
document.getElementById("codeToSave").prepend('<!doctype html>\n<html> \n<head>');
document.getElementById("codeToSave").append($.trim('</body>\n</html>'));
});
});
<ul class="control-list">
<li class="controls" id="export-file" data-toggle="tooltip" title="Export " ><i class="fas fa-download"></i></li>
</ul>
<textarea id="codeToSave" disabled class="scrollStyle-3" ></textarea>
$(文档).ready(函数(){
“严格使用”;
$(“#导出文件”)。单击(函数(){
document.getElementById(“codeToSave”).prepend('\n\n');
document.getElementById(“codeToSave”).append($.trim('\n'));
});
});
实际上.prepend
和.append
都是实验技术:
(分别)方法将一组节点
对象或DOMString
对象插入到父节点
的第一个子节点之前(分别位于最后一个子节点之后)
但我很确定您正在考虑使用jQuery的和方法。问题是文档。getElementById(“codeToSave”)
是类型为的对象,而不是jQuery对象!在此之前,您不能在其上应用.append
或.prepend
。(如果你想使用内置的实验方法,我不确定你是否愿意
如果要在文本区域内添加HTML作为文本(而不是实际元素),只需更改其textContent
属性:
$(文档).ready(函数(){
“严格使用”;
$(“#导出文件”)。单击(函数(){
document.getElementById(“codeToSave”).textContent=`
你好,世界
`;
});
});
两个问题。首先,当您使用本机选择器时,它们不会返回jQuery对象。因此,如果要使用jQuery方法,您必须将找到的元素放入$()
中,或者只使用jQuery选择器方法
其次,将html附加到textarea并不显示它,因为它试图在将文本附加到元素之前解释文本,即使它是一个textarea。要解决此问题,可以通过给jQuery一个TextNode来强制它附加/前置数据
$(文档).ready(函数(){
“严格使用”;
$(“#导出文件”)。单击(函数(){
var$codeToSave=$(“#codeToSave”);
$codeToSave
.prepend(document.createTextNode('\n\n'))
.append(document.createTextNode($.trim('\n'));
});
});
- 东西
为什么不关闭标记?Prepend需要节点,而不是字符串。这可能是您的问题的一部分。另外,您想做什么?我怀疑您做错了。