创建 <div> 并动态附加 <div>

IT技术 javascript
2021-02-02 23:25:11

我正在尝试<div>动态创建一个,并在<div>内部附加一个到目前为止,我有这个工作:

var iDiv = document.createElement('div');
iDiv.id = 'block';
iDiv.className = 'block';
document.getElementsByTagName('body')[0].appendChild(iDiv);

我只是在创建第二个 div 并将其附加到第一个 div 时遇到问题。

我基本上想将其作为最终标记:

<div id="block" class="block">
   <div class="block-2"></div>
</div>
6个回答

使用相同的过程。您已经拥有iDiv仍然引用<div id='block'>您创建的原始元素的变量您只需要创建另一个<div>并调用appendChild().

// Your existing code unmodified...
var iDiv = document.createElement('div');
iDiv.id = 'block';
iDiv.className = 'block';
document.getElementsByTagName('body')[0].appendChild(iDiv);

// Now create and append to iDiv
var innerDiv = document.createElement('div');
innerDiv.className = 'block-2';

// The variable iDiv is still good... Just append to it.
iDiv.appendChild(innerDiv);

http://jsfiddle.net/W4Sup/1/

事件创建的顺序不必像我上面所说的那样。或者,您可以新追加innerDiv添加两到之前的外层div <body>

var iDiv = document.createElement('div');
iDiv.id = 'block';
iDiv.className = 'block';

// Create the inner div before appending to the body
var innerDiv = document.createElement('div');
innerDiv.className = 'block-2';

// The variable iDiv is still good... Just append to it.
iDiv.appendChild(innerDiv);

// Then append the whole thing onto the body
document.getElementsByTagName('body')[0].appendChild(iDiv);
也可以缩短最后一行: document.body.appendChild(iDiv);
2021-03-28 23:25:11
var iDiv = document.createElement('div');

iDiv.id = 'block';
iDiv.className = 'block';
document.getElementsByTagName('body')[0].appendChild(iDiv);

var div2 = document.createElement('div');

div2.className = 'block-2';
iDiv.appendChild(div2);
你几乎抄袭了迈克尔·伯科夫斯基
2021-03-24 23:25:11
我不认为我可以做到这一点。简单的解决方案通常具有低方差:D。
2021-03-25 23:25:11
var iDiv = document.createElement('div'),
    jDiv = document.createElement('div');
iDiv.id = 'block';
iDiv.className = 'block';
jDiv.className = 'block-2';
iDiv.appendChild(jDiv);
document.getElementsByTagName('body')[0].appendChild(iDiv);
window.onload = function() {
  var iDiv = document.createElement('div');
  iDiv.id = 'block';
  iDiv.className = 'block';
  document.body.appendChild(iDiv);

  var iiDiv = document.createElement('div');
  iiDiv.className = 'block-2';

  var s = document.getElementById('block');
  s.appendChild(iiDiv);
}

好吧,我不知道这是多么动态,但有时这可能会节省您的调试时间:

var daString="<div id=\'block\' class=\'block\'><div class=\'block-2\'></div></div>";
var daParent=document.getElementById("the ID of whatever your parent is goes in here");
daParent.innerHTML=daString;

“Rat javascript”如果我做对了。当然,当 div 和内容本身不是动态的时,直接为我工作,或者您甚至可以操纵字符串来改变它,尽管字符串操作比“element.property=bla”方法复杂,但这非常受欢迎灵活性,也是一个很好的调试工具:) 希望它有所帮助。