代码之家  ›  专栏  ›  技术社区  ›  Noha

我正在创建一个类似社交媒体的网站,我需要让用户动态发布(关闭)

  •  2
  • Noha  · 技术社区  · 10 年前

    代码应该使用js动态添加一个新的article元素。这是我的代码,但它不起作用。

    js在用户单击post按钮后在页面上创建文章。 `

    document.getElementById("post-button").onclick = createPost();
    var el = document.getElementById("post-button");
    if (el.addEventListener)
        el.addEventListener("click", createPost(), false);
    else if (el.attachEvent)
        el.attachEvent('onclick', createPost());
    
    
    function createPost(){
        var article = document.createElement("article");
        article.setAttribute("id", "myarticle");
        article.className = "posts";
    
        var p = document.createElement("p");
        p = document.getElementByID("posting-area").value;
    
    
    
    
        // test case, append the content
        document.body.appendChild(article);
        document.getElementById("myarticle").appendChild(p);
    
    }
    

    `

    html供用户输入帖子文本。

    <article class="posts">
                   <img class="peopletofollowimg" src=Profile.jpg alt="View Profile Picture">
                    <textarea id="posting-area" rows="6" cols="90" placeholder="Share Your Thoughts!">
                    </textarea>
                        <button onclick="createPost()" id="post-button">Post!</button>
    
    
                </article>
    
    1 回复  |  直到 10 年前
        1
  •  0
  •   Robbert    10 年前

    我看到你的代码有很多问题。首先,您将p元素附加到id为myarticle的元素中,但myarticles不存在于html代码段中。你可能忘了这一点。

    而且 document.getElementByID("posting-area").value() 是错误的。应该是 getElementById("posting-area").value() 。删除getElementByID中的大写D。

    最后,你需要改变路线

    var p = document.createElement("p");
    p = document.getElementById("posting-area").value;
    

    var p = document.createElement("p");
    p.innerHTML = document.getElementById("posting-area").value;
    

    这是一个工作 jsfiddle