我正在尝试将带有class =“SomeDiv”的div移动到ID =“ParentDiv”的div中/内部
如果我编辑javascript以将带有ID的div移动到具有可用的diff ID的另一个div中。但是将带有Class的div移动到带有ID的div中是行不通的。我错过了什么吗?
HTML
<div id="ParentDiv">
<div id="ChildDiv">
<ul>
<li>1</li>
<li>2</li>
</ul>
</div>
<!-- move SomeDiv here -->
</div>
<div class="SomeDiv">some content</div>
JS:
document.getElementById('ParentDiv').appendChild(document.getElementsByClassName('SomeDiv'));
答案 0 :(得分:5)
.getElementsByClassName
返回数组,所以你最后需要一个索引:
document.getElementById('ParentDiv').appendChild(document.getElementsByClassName('SomeDiv')[0]);
答案 1 :(得分:3)
使用jquery让它更容易,查看jsfiddle的更新版本,你可以通过检查dom树看到项目已被移动
$(document).ready(function(){
$("#ParentDiv").append($(".SomeDiv"));
});
答案 2 :(得分:1)
改为使用document.getElementsByClassName('SomeDiv')[0]
,
getElementsByClassName
返回一个元素数组,而getElementsById
返回单个元素
答案 3 :(得分:0)
来源:document.getElementsByClassName
getElementsByClassName
返回找到元素的HTMLCollection。
如果你知道你的div有一个独特的课程,你可以做
document.getElementById('ParentDiv').appendChild(document.getElementsByClassName('SomeDiv')[0]);
答案 4 :(得分:0)
你不能得到像这样的类的元素。 document.getElementsByClassName返回一个数组。你必须做类似的事情......
document.getElementsByClassName('SomeDiv')[0]
此外,如果您想将该className的所有div放在div中,请进行一些迭代。
for (i=0;i<=document.getElementsByClassName('SomeDiv').length;i++) {
document.getElementById('ParentDiv').appendChild(document.getElementsByClassName('SomeDiv')[i]);
}