2016-03-07 77 views
-2

我需要将内容(HTML)追加到元素。这是我当前如何做...干净的方式来填充元素的内容

element.innerHTML += "<a href=\"" + something[awesome] + "\">" + something[great] + "</a>"; 
element.innerHTML += "<br>"; 

这似乎很凌乱。有没有更干净的方法来做到这一点? createElement()方法是否是实现此目的的正确方法?

+1

这是混乱。 createElement是组合该方法的正确方法。与appendChild配对。 –

+0

一些示例代码? –

+0

“正确”是一个非常强的词。有些人更喜欢设置'innerHTML'(我没有亲自确认)的速度,但是再一次,可以根据设计使用API​​的方式进行争论。这个问题可能会产生很多简单的基于观点的答案。 –

回答

0

这取决于你的需求,但如果你想保持它的简单和接近你有什么权利现在,只需更改为:

var s = "<a href=\"" + something[awesome] + "\">" + something[great] + "</a>"; 
element.innerHTML += s + "<br>"; 

为了把它的话,建立自己的字符串变量,不直接在innerHTML属性上。

+1

这仍然是非常混乱 –

+0

@BruceBlacklaws - 我没有声称它是原始的,神圣的或天上的。只是它减少了多次改变'innerHTML'的负面影响(这很糟糕)。 – Amit

2

假设elementsomethingawesomegreat已经定义,我通常会做这样的事情:

// build anchor 
var anchorElement = document.createElement('a'); 
anchorElement.href = something[awesome]; 
anchorElement.appendChild(document.createTextNode(something[great])); 

// build break tag 
var breakElement = document.createElement('br'); 

// append 
element.appendChild(anchorElement); 
element.appendChild(breakElement); 

断裂可能是不必要的。只需使用CSS来制作锚点块或创建视觉分隔。

这里有一个小提琴玩弄:https://jsfiddle.net/30qvd2vm/

相关问题