【问题标题】:Adding elements to more tags(=> add only first element)将元素添加到更多标签(=> 仅添加第一个元素)
【发布时间】:2017-05-04 15:29:20
【问题描述】:

function $(selector) {

    var resultObject = {
        append: function (element) {
            var parser = new DOMParser();
            var dos = parser.parseFromString(element, "text/html");

            var all = dos.getElementsByTagName("body")[0];
       

            var elemWhichAppend = document.getElementsByClassName("testing");

            var children = all.childNodes;


            for (var i = 0; i < elemWhichAppend.length; i++) {
                
                var msgContainer = document.createDocumentFragment();
                var children = all.childNodes;

                for (var child = 0; child < children.length; child++) {
                
                    var al = myLo(children[child]);
                    msgContainer.appendChild(al);
                }
                insertAfter(msgContainer, elemWhichAppend[i]);
            }
            



        }
    }
    return resultObject;
}

function insertAfter(newNode, referenceNode) {
    referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}

function myLo(curElem)
{

    var whichnodetype;

    if (curElem.nodeType == 3)
    {
        whichnodetype = document.createTextNode(curElem.nodeValue);
    }
    else
    {
        var whichnodetype = document.createElement(curElem.nodeName);
    }

    var children = curElem.childNodes;
    for (var child = 0; child < children.length; child++) {
        whichnodetype.appendChild(children[child]);
    }

    return whichnodetype;
}
<!DOCTYPE html>
<html>
<head>
    <title></title>
	<meta charset="utf-8" />
</head>
<body>
    <h1 class="testing">APPEND</h1>
    <p>Hallo, ich bin ein P TAG </p>
    <h2 class="testing">APPEND2</h2>
    <input type="button" value="append tag/text " onclick="$('.testing').append('<ul><li>RIBA RIBI<ul><li>FRANK RIBERY</li></ul></li></ul> <h1>NIGOGOG</h1> messi ist scheiße');" />
</body>
</html>

我设法将每个元素添加到第一个标签,但第二次它只添加了最后一个标签。见代码被剪断。每个循环执行两次,这是正确的,但第二次仍然不正确。

【问题讨论】:

    标签: javascript jquery html append appendchild


    【解决方案1】:

    我很困惑你是怎么做的,为什么你用你自己的版本替换了append,但是作为一个例子,如何在一小部分代码中使用 jQuery 附加到多个目标:

    JSFiddle:https://jsfiddle.net/TrueBlueAussie/ad2qf4uy/

    $('.addbutton').click(function(){
        $('.testing').append('<ul><li>RIBA RIBI<ul><li>FRANK RIBERY</li></ul></li></ul> <h1>NIGOGOG</h1> messi ist scheiße');
    });
    

    如果你能解释一下你的目标是什么,那会让生活变得更轻松:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-18
      • 1970-01-01
      • 2016-02-29
      • 1970-01-01
      相关资源
      最近更新 更多