这个innerHTML黑客“有效”吗?

时间:2015-12-22 10:51:17

标签: javascript html dom

所以我想说我有<div>元素:

...
<div id="me"></div>
...

然后我有一个这样的脚本:

var me = document.getElementById("me");

me.innerHTML = '<span color="#00F">Hello!';

这个脚本是否是一个糟糕的“黑客”,为什么我必须写/我甚至不得不写:

me.innerHTML = '<span color="#00F">Hello!</span>';

,结尾是</span>

3 个答案:

答案 0 :(得分:3)

虽然主流浏览器会自动添加结束标记,但插入像'<span color="#00F">Hello!';这样的html是不好的做法。

要始终保持一致,请使用结束标记包装html。

来自评论:

  

那么为什么浏览器会自动添加结束标记呢?

首先,您强迫浏览器执行耗时的操作,然后并非所有浏览器都应该像这样工作。

答案 1 :(得分:1)

有效的HTML是可预测的,因此它健壮且可靠。 HTML标记汤取决于每个浏览器应用的特定修复,因此可能导致不一致并且难以诊断错误。

答案 2 :(得分:0)

也许你可以改变课程。

在那;

实施例

var me = document.getElementById('mykey');
    me.innerHTML = '<span color="#0FF" />';
    me.getElementsByTagName('span')[0].innerText = 'Hello';