尝试学习jquery。遇到了有关通过 iframe 预览文本区域输入的代码。
HTML
<div class="content">
<textarea></textarea>
<iframe></iframe>
</div>
JQuery
$(function () {
'use strict';
$(document).ready( function () {
$('div.content textarea').keyup( function () {
$('iframe').attr('srcdoc', $(this).val());
});
});
});
我认为 html 元素需要使用 .html() 而不是 .attr() 来预览文本区域输入和 html 标记?不要误会我的意思,它有效,只是不明白为什么不直接使用 .html() 方法。这两种方法有什么区别?
最佳答案
.html() 返回 html 标记内部的内容。因此,如果您在 div 标签上调用它,它将返回 <div></div>
之间的任何内容。 。 .attr 函数返回属性的值,例如 src
img
上的属性,href
anchor 上的属性。 srcdoc
iframe 的属性是一个奇怪的属性,因为该属性接受 html。您在示例中所做的相当于普通 JS 中的以下操作:
document.getElementById("exampleFrame").srcdoc = "<div>html inside iframe</div>";
从技术上讲,<iframe></iframe>
内部没有任何内容。 ,而是在 <iframe srcdoc="some html"></iframe>
的 srcdoc 属性中。因此,为什么您需要调用 .attr。
更多信息:MDN
关于javascript - 使用 jquery 预览 html 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55505849/