如何向 DOM 添加元素以便人们可以 post 发表评论?
How do I add elements to the DOM so people can post comments?
我有一个代码(在下方)有一个文本框和一个评论部分。我还有一个按钮,应该在其中添加该评论。我不知道将 post 评论部分下面的评论的代码。这是我的代码:
<div id="comments">
<fieldset><legend>Post Your Comments!</legend>
Name: <input type="textbox" name="name"><br><br>
</fieldset><br>
<textarea rows="10" cols="30" placeholder="Your Comments!"></textarea>
<button>Add!</button>
我确定您会希望对评论进行某种服务器端保存,但下面的代码通过将元素添加到 DOM 来回答您的问题。您会看到您的代码发生了一些变化,包括一些 ID 以及正确关闭 input 和 br 标签。
HTML:
<div id="comments">
<fieldset>
<legend>Post Your Comments!</legend>Name:
<input type="textbox" id="txtName" name="name" />
<br />
<br />
</fieldset>
<br />
<textarea id="txtComments" rows="10" cols="30" placeholder="Your Comments!"></textarea>
<button id="btnAdd">Add!</button>
</div>
<div id="postedComments"></div>
JavaScript:
$(document).ready(function () {
$('#btnAdd').on('click', function (event) {
event.preventDefault();
// Create new HTML string containing name & comment
var newComment = '<hr /><div class="name">' + $('#txtName').val() + '</div>' +
'<div class="comment">' + $('#txtComments').val() + '</div>';
// This creates a new jQuery object containing newComment
// and appends it to the posted comments section
$(newComment).appendTo('#postedComments');
// Clear input
$('#txtComments').val('');
$('#txtName').val('');
});
});
演示:http://jsfiddle.net/BenjaminRay/85k8y6eo/
如果您想 post 将评论添加到服务器并且只在它们保存在服务器上后将它们添加到 DOM,请查看 jQuery 的 post()(或其他类似的 AJAX 函数)。 https://api.jquery.com/jquery.post/
类似的东西(纯 JavaScript):
window.onload = function() {
var addButton = document.getElementById("add");
addButton.addEventListener("click", addComment);
var theDiv = document.getElementById("comments");
function addComment() {
var name = document.getElementById("name").value;
var comments = document.getElementById("post").value;
var newPara = document.createElement("P");
newPara.innerHTML = "<u>" + name + "</u><br/>" + comments;
theDiv.appendChild(newPara);
}
};
<div id="comments">
<h3>Post Your Comments!</h3>
Name:
<input type="textbox" name="name" id="name">
<br/>
<br/>
<textarea id="post" rows="10" cols="30" placeholder="Your Comments!"></textarea>
<br/>
<button id="add">Add!</button>
</div>
我有一个代码(在下方)有一个文本框和一个评论部分。我还有一个按钮,应该在其中添加该评论。我不知道将 post 评论部分下面的评论的代码。这是我的代码:
<div id="comments">
<fieldset><legend>Post Your Comments!</legend>
Name: <input type="textbox" name="name"><br><br>
</fieldset><br>
<textarea rows="10" cols="30" placeholder="Your Comments!"></textarea>
<button>Add!</button>
我确定您会希望对评论进行某种服务器端保存,但下面的代码通过将元素添加到 DOM 来回答您的问题。您会看到您的代码发生了一些变化,包括一些 ID 以及正确关闭 input 和 br 标签。
HTML:
<div id="comments">
<fieldset>
<legend>Post Your Comments!</legend>Name:
<input type="textbox" id="txtName" name="name" />
<br />
<br />
</fieldset>
<br />
<textarea id="txtComments" rows="10" cols="30" placeholder="Your Comments!"></textarea>
<button id="btnAdd">Add!</button>
</div>
<div id="postedComments"></div>
JavaScript:
$(document).ready(function () {
$('#btnAdd').on('click', function (event) {
event.preventDefault();
// Create new HTML string containing name & comment
var newComment = '<hr /><div class="name">' + $('#txtName').val() + '</div>' +
'<div class="comment">' + $('#txtComments').val() + '</div>';
// This creates a new jQuery object containing newComment
// and appends it to the posted comments section
$(newComment).appendTo('#postedComments');
// Clear input
$('#txtComments').val('');
$('#txtName').val('');
});
});
演示:http://jsfiddle.net/BenjaminRay/85k8y6eo/
如果您想 post 将评论添加到服务器并且只在它们保存在服务器上后将它们添加到 DOM,请查看 jQuery 的 post()(或其他类似的 AJAX 函数)。 https://api.jquery.com/jquery.post/
类似的东西(纯 JavaScript):
window.onload = function() {
var addButton = document.getElementById("add");
addButton.addEventListener("click", addComment);
var theDiv = document.getElementById("comments");
function addComment() {
var name = document.getElementById("name").value;
var comments = document.getElementById("post").value;
var newPara = document.createElement("P");
newPara.innerHTML = "<u>" + name + "</u><br/>" + comments;
theDiv.appendChild(newPara);
}
};
<div id="comments">
<h3>Post Your Comments!</h3>
Name:
<input type="textbox" name="name" id="name">
<br/>
<br/>
<textarea id="post" rows="10" cols="30" placeholder="Your Comments!"></textarea>
<br/>
<button id="add">Add!</button>
</div>