如何设置新创建的 DOM 元素的 HTML 内容
How to set the HTML content of a newly created DOM element?
我正在尝试以这种方式写入文档。我不使用document.getElementById("holder").innerHTML="x"
的原因是因为我有可能写不止一次,并且不希望任何东西被覆盖。但是,此方法的问题是,当我希望字符串中包含的标签起作用时,文本内容被视为文本字符串。我应该如何更改此代码以使标签正确显示在文档上?
if (office1match == matchindex[0]) {
var newParagraph = document.createElement('article');
newParagraph.textContent = "<p class='"title'">Core i.1.1</p><img class='"caseimg'" src='"images''case1.png'"><p><span class='"bold'">Motherboard:</span> ASRock H61M/U3S3 LGA 1155 Intel H61</br><span class='"bold'">Processor:</span> Intel Celeron G550 Sandy Bridge 2.6GHz LGA 1155 65W</br><span class='"bold'">Video Card:</span> On Board</br><span class='"bold'">Memory:</span> Crucial 2GB (2 x 1GB) 240-Pin DDR3 SDRAM DDR3 1333</br><span class='"bold'">DVD Burner:</span> ASUS 24X DVD Burner</br><span class='"bold'">Hard Drive:</span> Western Digital Caviar Blue WD2500AAKX 250GB 7200 RPM</br><span class='"bold'">Case:</span> Rosewill R363-M-BK Black Ultra High Gloss Finished MicroATX</br><span class='"bold'">OS:</span> Microsoft Windows 7 Home Premium</br><span class='"bold'">Cost:</span> $430.00</p>";
document.getElementById("holder").appendChild(newParagraph);
}
使用 newParagraph
的 innerHTML
属性而不是 textContent
。顾名思义,前者处理 HTML,而后者处理纯文本(因此插入的 HTML 被转义,这在您想要防止 XSS 时很有用)。
newParagraph.innerHTML = "<p class='"title'">Core i.1.1</p><img class='"caseimg'" src='"images''case1.png'"><p><span class='"bold'">Motherboard:</span> ASRock H61M/U3S3 LGA 1155 Intel H61</br><span class='"bold'">Processor:</span> Intel Celeron G550 Sandy Bridge 2.6GHz LGA 1155 65W</br><span class='"bold'">Video Card:</span> On Board</br><span class='"bold'">Memory:</span> Crucial 2GB (2 x 1GB) 240-Pin DDR3 SDRAM DDR3 1333</br><span class='"bold'">DVD Burner:</span> ASUS 24X DVD Burner</br><span class='"bold'">Hard Drive:</span> Western Digital Caviar Blue WD2500AAKX 250GB 7200 RPM</br><span class='"bold'">Case:</span> Rosewill R363-M-BK Black Ultra High Gloss Finished MicroATX</br><span class='"bold'">OS:</span> Microsoft Windows 7 Home Premium</br><span class='"bold'">Cost:</span> $430.00</p>";
jsFiddle 演示
既然你提到你可能写了不止一次,并且不想覆盖现有的数据,你可以使用.insertAdjacentHTML()
.专业提示:如果您使用单引号将刺痛括起来,则不必在字符串中斜杠转义双引号。
演示:http://jsfiddle.net/ThinkingStiff/myzjn/
脚本:
var newParagraph = document.createElement('article');
newParagraph.insertAdjacentHTML( 'beforeEnd', '<p class="title">Core i.1.1</p><img class="caseimg" src="images'case1.png"><p><span class="bold">Motherboard:</span> ASRock H61M/U3S3 LGA 1155 Intel H61</br><span class="bold">Processor:</span> Intel Celeron G550 Sandy Bridge 2.6GHz LGA 1155 65W</br><span class="bold">Video Card:</span> On Board</br><span class="bold">Memory:</span> Crucial 2GB (2 x 1GB) 240-Pin DDR3 SDRAM DDR3 1333</br><span class="bold">DVD Burner:</span> ASUS 24X DVD Burner</br><span class="bold">Hard Drive:</span> Western Digital Caviar Blue WD2500AAKX 250GB 7200 RPM</br><span class="bold">Case:</span> Rosewill R363-M-BK Black Ultra High Gloss Finished MicroATX</br><span class="bold">OS:</span> Microsoft Windows 7 Home Premium</br><span class="bold">Cost:</span> $430.00</p>' );
document.body.appendChild(newParagraph);
相关文章:
- 如何使用JavaScript在没有html dom的情况下隐藏html元素
- 将GET请求(HTML字符串)转换为完整的DOM对象
- 注入的HTML仅在Dom中解释为字符串
- HTML选择,在DOM中选择了正确的选项,但在firefox中显示了错误的项目
- DOM更改后的L20N翻译html
- 如何序列化包括影子 DOM 在内的 HTML DOM
- 创建一个HTML文件,该文件使用DOM在用户每次单击按钮时交换两段内容
- 使用 jQuery 调用 DOM HTML
- 当我认为它不应该重新渲染视图时,如何防止 Meteor 在 html 选择 dom 单击事件上重新渲染视图
- 使用 ajax 更改光滑轮播的 html 后,DOM 不会更新
- 如何选择由 DevExpress constrols 使用 Javascript DOM 技术自动生成的 html “i
- 根据DOM,HTML元素的开始和结束标记之间的内容被称为属性.这个房产的名字是什么
- 为什么这里没有应用来自模板dom的html
- 通过Java加载XML并制作HTML DOM的一部分
- 在DOM(html)上下文中使用角度作用域函数时出现的问题
- Pupulate Dom HTML fom JSON and coffeescript
- 编辑 DOM/HTML 元素
- JavaScript DOM:html 表操作问题
- 如何识别由于Chrome扩展程序而导致的DOM html代码更改
- 在iPad上捕捉点击DOM/HTML/BODY事件