javascript - JavaScript append 和 prepend 在 IE 中不起作用
问题描述
我正在尝试使用单击按钮在文本区域内附加和前置一个 HTML 块,但它在 Internet Explorer 中不起作用。
$(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>
解决方案
情侣问题。首先,当您使用本机选择器时,它们不会返回 jQuery 对象。因此,如果您想使用 jQuery 方法,您必须将找到的那些元素放入其中,$()
或者只使用 jQuery 选择器方法。
其次,将html附加到textarea并没有显示它,因为它试图在将文本附加到元素之前解释文本,即使它是一个textarea。要解决这个问题,你可以通过给它一个 TextNode 来强制 jQuery 附加/前置数据。
$(document).ready(function() {
"use strict";
$('#export-file').click(function() {
var $codeToSave = $("#codeToSave");
$codeToSave
.prepend(document.createTextNode('<!doctype html>\n<html> \n<head>'))
.append(document.createTextNode($.trim('</body>\n</html>')));
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="control-list">
<li class="controls" id="export-file" data-toggle="tooltip" title="Export "><i class="fas fa-download"></i>Thing</li>
</ul>
<textarea id="codeToSave" disabled class="scrollStyle-3"></textarea>
推荐阅读
- android - PlusShare 类已弃用。有没有其他替代方法可以从 android 应用程序在 google Plus 上分享?
- python - Python:如何在两个列表中引用相同的索引值位置?
- c# - Task.Run 然后使用异步等待 ContinueWith 在主线程替代上调用?
- python - NameError:在 wsadmin cli 实用程序的 jython 中使用布尔值时为真
- javascript - 刷新没有布局的div
- python - 使用带有 git clean 过滤器的黑色
- node.js - Mongoose - 返回单个文档而不是使用 Aggregate 的文档数组
- javascript - Stop repeating div content in PHP AJAX MySQL
- python - FLASK:每次有新请求进来时,路由器外的代码都会被执行吗?
- email - 赛普拉斯失败的电子邮件通知