0

たとえば、次の場合:

<div class="abc123"></div>  <!-- no child div -->

それに新しいdivを挿入したい:

<div class="xyz">some content</div>

結果は次のようになります。

<div class="abc123">
    <div class="abc">Some Content</div>
</div>

javascriptを使用してこれを実装するにはどうすればよいですか?

4

3 に答える 3

2

jQueryで:

$(".abc123").each(function() {
    if (this.children(".abc").length == 0) {
        $(this).append('<div class="xyz">some content</div>');
    }
});​

シンプルなJSで

var divs = document.getElementsByTagName("div");
for (var i = 0; i < divs.length; i++) {
    if (divs[i].childNodes.length == 0) { // testing if it has not child
        var newdiv = document.createElement('div');
        newdiv.innerHTML = "some content";
        newdiv.className = "xyz";
        divs[i].appendChild(newdiv);
    }
}​

編集:

この次のコードは、上記の jQuery コード ( RobWによるコメントに照らして編集) で行われたのと同じ効果を生み出します。

var divs = document.getElementsByClassName("abc123");
for (var i = 0; i < divs.length; i++) {
    if (divs[i].getElementsByClassName("abc").length == 0) { 
        var newdiv = document.createElement('div');
        newdiv.innerHTML = "some content";
        newdiv.className = "xyz";
        divs[i].appendChild(newdiv);
    }
}​
于 2012-06-20T10:21:45.363 に答える
0

この質問を見てみたいと思うかもしれません: How to check if element has any children in Javascript?

あなたが探しているもののようです:)

于 2012-06-20T10:23:36.187 に答える
-2

jQueryの場合:

if ($('.abc123 div').length == 0) {
    $('.abc123').append('<div class="xyz">some content</div>');
}​
于 2012-06-20T10:20:23.710 に答える