如何一次完成createElement,appendChild和className?

时间:2014-11-12 22:30:28

标签: javascript html

使用vanilla JS时,这是我创建元素并在页面上呈现它的典型方法:

var span = document.createElement('span');
    span.className = 'someClass';
    span.innerHTML = 'Lorem ipsum';

document.body.appendChild(span);

使用jQuery,您可以执行类似

的操作
$('body').append('<span class="someClass">Lorem ipsum</span>')

是否有更简洁的版本可用于纯JS?

3 个答案:

答案 0 :(得分:1)

不确定

document.body.insertAdjacentHTML('beforeend', '<span class="someClass">Lorem ipsum</span>');

答案 1 :(得分:0)

这可能是你所追求的(不是最好的):

document.body.appendChild((((t = document.createElement("span")).className="someClass"),t)).innerHTML = "Lorem ipsum";

它为t分配一个新元素,设置className,然后将t传递给appendChild方法,最后设置innerHTML

以下内容也可能有效:

document.body.appendChild(t = document.createElement("span"),t.innerHTML="yea",t.style.backgroundColor="#F00",t)

答案 2 :(得分:-2)

我最终经常使用的方法是:

var el = '<div class="class-name">content</div>';
document.body.innerHTML = el;

但请记住,在这个例子中,整个<body> html正在被替换。它只适用于您定位更具体的容器,如

document.getElementById('container').innerHTML = el;

编辑发现this queston更长时间地讨论同一问题。 Here's another that looks to be a duplicate of this,答案与我的相似。

虽然我不理会这两个因为@ Jonathon的答案看起来很棒。