CreateElement with id?

后端 未结 7 1852
隐瞒了意图╮
隐瞒了意图╮ 2020-11-28 01:05

I\'m trying to modify this code to also give this div item an ID, however I have not found anything on google, and idName does not work. I read something about append

相关标签:
7条回答
  • 2020-11-28 01:50

    You can use Element.setAttribute

    Examples:

    g.setAttribute("id","yourId")

    g.setAttribute("class","tclose")


    Here's my function for doing this better:

    function createElement(element, attribute, inner) {
      if (typeof(element) === "undefined") {
        return false;
      }
      if (typeof(inner) === "undefined") {
        inner = "";
      }
      var el = document.createElement(element);
      if (typeof(attribute) === 'object') {
        for (var key in attribute) {
          el.setAttribute(key, attribute[key]);
        }
      }
      if (!Array.isArray(inner)) {
        inner = [inner];
      }
      for (var k = 0; k < inner.length; k++) {
        if (inner[k].tagName) {
          el.appendChild(inner[k]);
        } else {
          el.appendChild(document.createTextNode(inner[k]));
        }
      }
      return el;
    }
    

    Example 1:

    createElement("div");
    

    will return this:

    <div></div>
    

    Example 2:

    createElement("a",{"href":"http://google.com","style":"color:#FFF;background:#333;"},"google");`
    

    will return this:

    <a href="http://google.com" style="color:#FFF;background:#333;">google</a>
    

    Example 3:

    var google = createElement("a",{"href":"http://google.com"},"google"),
        youtube = createElement("a",{"href":"http://youtube.com"},"youtube"),
        facebook = createElement("a",{"href":"http://facebook.com"},"facebook"),
        links_conteiner = createElement("div",{"id":"links"},[google,youtube,facebook]);
    

    will return this:

    <div id="links">
        <a href="http://google.com">google</a>
        <a href="http://youtube.com">youtube</a>
        <a href="http://facebook.com">facebook</a>
    </div>
    

    You can create new elements and set attribute(s) and append child(s)

    createElement("tag",{attr:val,attr:val},[element1,"some text",element2,element3,"or some text again :)"]);
    

    There is no limit for attr or child element(s)

    0 讨论(0)
提交回复
热议问题