简体   繁体   English

填充元素内容的干净方式

[英]Clean way to populate content of element

I need to append content (HTML) to an element.我需要将内容 (HTML) 附加到元素。 This is how I am currently doing it...这就是我目前正在做的...

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

This seems very messy.这看起来非常混乱。 Are there any cleaner ways of doing this?有没有更干净的方法来做到这一点? Is the createElement() method the correct way of achieving this? createElement()方法是实现这一目标的正确方法吗?

Assuming element , something , awesome , and great are already defined, I would usually do something like this:假设已经定义了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);

The break is probably unnecessary.休息可能是不必要的。 Just use CSS to make the anchor block or create the visual separation.只需使用 CSS 来制作锚块或创建视觉分离。

Here's a fiddle to play around with: https://jsfiddle.net/30qvd2vm/这是一个可以玩的小提琴: https : //jsfiddle.net/30qvd2vm/

It depends on your requirement, but if you want to keep it simple and close to what you have right now, just change to:这取决于您的要求,但如果您想保持简单并接近您现在拥有的,只需更改为:

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

To put it in words, build your string in a variable, not directly on the innerHTML property.换句话说,在变量中构建字符串,而不是直接在innerHTML属性上构建。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM