简体   繁体   English

在用户输入此文本并点击提交后,如何显示带有文本的新 div?

[英]How can I display a new div with text after a user inputs this text and hits submit?

I'm trying to simulate a chat messaging system using pure JS (no server though, so really just uploading and displaying text) but am having trouble as I'm pretty new to JavaScript.我正在尝试使用纯 JS 模拟聊天消息系统(虽然没有服务器,所以实际上只是上传和显示文本),但由于我对 JavaScript 还很陌生,因此遇到了问题。 I wrote this code but nothing happens when I click submit.我写了这段代码,但当我点击提交时没有任何反应。 Is my code having a huge error anywhere that I am not catching?我的代码在我没有捕捉到的任何地方都有一个巨大的错误吗? If so, how can I fix it?如果是这样,我该如何解决?

I am trying to use the javascript function to generate a div under the class container, with parent div chatMsg.我正在尝试使用javascript函数在类容器下生成一个div,父div chatMsg。

<div id="chatMsg" class = "chatMsg" >
    <div class="container">

    //some other HTML here

    </div>

</div>

<div class = "sendText">
    <form name = "sendMsg">
        <textarea name="Message" class="msg" ></textarea>
        <input type="submit" name = "submit" value="Send!" onclick = "addChatMessage()">
    </form>
</div>

<script>
    function addChatMessage() {
        var chat = document.getElementById('Message'); // finds the container
        var div = document.createElement('div');
            div.id = "newMsg";
            div.className = "container";
            div.innerHTML = chat.value;
        var parDiv = document.getElementById('chatMsg');
        parDiv.appendChild(div);
    }
</script>

A few things...一些东西...

1) You need to give the textarea an id attribute: 1) 你需要给 textarea 一个id属性:

<textarea id="Message" name="Message" class="msg" ></textarea>

Now, you can use document.getElementById('Message') to get it.现在,您可以使用document.getElementById('Message')来获取它。

2) You should create new elements with unique ids. 2) 您应该创建具有唯一 ID 的新元素。 A counter variable could be used to increase the id by one each time:计数器变量可用于每次将 id 增加 1:

var counter = 0;
div.id = "newMsg" + counter++;
div.className = "container";
div.innerHTML = chat.value;

3) Use an input type of button instead of submit if you don't want it to post to a server. 3) 如果您不想将其发布到服务器,请使用输入类型的button而不是submit

<input type="button" id="submit" value="Send!" onclick = "addChatMessage()">



Putting it all together:把它们放在一起:

 var counter = 0; function addChatMessage() { var chat = document.getElementById('Message'); // finds the container var div = document.createElement('div'); div.id = "newMsg" + counter++; div.className = "container"; div.innerHTML = chat.value; var submitMsg = document.getElementById('submit'); var parDiv = document.getElementById('chatMsg'); parDiv.appendChild(div); }
 <div id="chatMsg" class = "chatMsg" > <div class="container"> //some other HTML here </div> </div> <div class = "sendText"> <form name = "sendMsg"> <textarea id="Message" name="Message" class="msg" ></textarea> <input type="button" id="submit" value="Send!" onclick = "addChatMessage()"> </form> </div>

怎么去掉里面的文字<li>之后<div></div><div id="text_translate"><p>我想删除&lt;li&gt;中的"Text" 。</p><p> 这是我的尝试: </p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"> window.onload = function() { var str = document.getElementsByClassName("slide-2")[0].innerHTML; var res = str.replace("Text", "Hello"); document.getElementsByClassName("slide-2")[0].innerHTML = res; }</pre><pre class="snippet-code-html lang-html prettyprint-override"> &lt;ul class="box1"&gt; &lt;li class="slide-1"&gt;001&lt;/li&gt; &lt;li class="slide-2"&gt;&lt;div data-rel="Text" class="slide-2"&gt;&lt;img src=".."&gt;&lt;/div&gt;Text&lt;/li&gt; &lt;li class="slide-3"&gt;003&lt;/li&gt; &lt;/ul&gt; &lt;ul class="box2"&gt; &lt;li class="slide-1"&gt;001&lt;/li&gt; &lt;li class="slide-2"&gt;&lt;div data-rel="Text" class="slide-2"&gt;&lt;img src=".."&gt;&lt;/div&gt;Text&lt;/li&gt; &lt;li class="slide-3"&gt;003&lt;/li&gt; &lt;/ul&gt;</pre></div></div><p></p><p> 它不起作用,因为"data-rel"与我要删除的文本具有相同的值。</p><p> 我无法更改或删除"data-rel"中的值。</p></div></li> - How can I remove text in <li> and after <div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在单击div元素后显示更多文本? - How can I display further text after a div element is clicked? 我将如何在用户点击提交后清除 EmailJS 表单? - How would i clear an EmailJS form after the user hits submit? 用户提交表单后如何显示成功消息 - How can I display a success message after the user submit the form 如何显示确认提示,显示当用户在文本字段中输入信息并单击js中的“提交”时输入的内容 - How to display an acknowledgement prompt showing what has been entered when user inputs info into text fields and clicks submit in js 提交表单后如何查看文本 - How can ı see text after submit form 在contenteditable div中将文本设置为用户输入格式 - Format text as user inputs in a contenteditable div 用户单击“提交”按钮后,如何使图像或图标出现在另一图像上? - After a user hits the submit button, how do I make an image or icon appear over another image? 单击提交后如何隐藏内容(如文本,单选按钮和提交按钮)弹出窗口并在同一弹出窗口中显示新内容? - How to hide content(like text, radio button, and submit button) Popup window after Clicking on submit and display new content in the same popup? 怎么去掉里面的文字<li>之后<div></div><div id="text_translate"><p>我想删除&lt;li&gt;中的"Text" 。</p><p> 这是我的尝试: </p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"> window.onload = function() { var str = document.getElementsByClassName("slide-2")[0].innerHTML; var res = str.replace("Text", "Hello"); document.getElementsByClassName("slide-2")[0].innerHTML = res; }</pre><pre class="snippet-code-html lang-html prettyprint-override"> &lt;ul class="box1"&gt; &lt;li class="slide-1"&gt;001&lt;/li&gt; &lt;li class="slide-2"&gt;&lt;div data-rel="Text" class="slide-2"&gt;&lt;img src=".."&gt;&lt;/div&gt;Text&lt;/li&gt; &lt;li class="slide-3"&gt;003&lt;/li&gt; &lt;/ul&gt; &lt;ul class="box2"&gt; &lt;li class="slide-1"&gt;001&lt;/li&gt; &lt;li class="slide-2"&gt;&lt;div data-rel="Text" class="slide-2"&gt;&lt;img src=".."&gt;&lt;/div&gt;Text&lt;/li&gt; &lt;li class="slide-3"&gt;003&lt;/li&gt; &lt;/ul&gt;</pre></div></div><p></p><p> 它不起作用,因为"data-rel"与我要删除的文本具有相同的值。</p><p> 我无法更改或删除"data-rel"中的值。</p></div></li> - How can I remove text in <li> and after <div> 如何在div的文本后面放置一个元素? - How can I place an element JUST after div's text?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM