Jquery - 使元素连续追加而不是替换它
Jquery - Make element append continously instead of replace it
我想做一些'invitation list'。当我们输入其他人的电子邮件并单击 添加按钮 时,我们输入的电子邮件显示在底部。我的代码如下所示:
HTML
<input type="email" name="invite_people" placeholder="Invite someone">
<a href="#!" class="add_people">Add</a>
<div class="people_invited">
<!--
this element
<div>
<span class="people_added"></span>
</div>
is added by Jquery
-->
</div>
Jquery
$(".add_people").click(function () {
var orang_yg_diinvite = $("input[name='invite_people']").val();
$(".people_invited").append("<div><span class='people_added'></span></div>");
$("span.people_added").text(orang_yg_diinvite);
});
刚刚好。但它仅在我们添加人员时才第一次起作用。当我们再次添加人员时,第一个 'add list people' 将替换为我们添加的最后一个。我想要的是每个 <span class="people_added">
里面都有不同的文本。像 bitbucket
这样的东西
不是那样(我的结果)
请帮助我:)
你的代码的问题是这一行:
$("span.people_added").text(orang_yg_diinvite);
这个选择器只有第一次是独一无二的。稍后你有更多 people_added
class 的跨度 - 所以你正在为所有这些跨度分配新文本。
您可以在创建新元素时附加文本,例如:
var divInnerText = "myText";
var newDiv = $("<div>" + divInnerText + "</div>");
它将产生以下元素:<div>myText</div>
您可以使用这种方法解决您的问题:
$(".add_people").click(function () {
var orang_yg_diinvite = $("input[name='invite_people']").val();
$(".people_invited").append("<div><span class='people_added'>" + orang_yg_diinvite + "</span></div>");
});
问题出在这一行
$("span.people_added").text(orang_yg_diinvite);
它所做的是用新值覆盖整个跨度元素,而不是像这样将它添加到追加函数中
$(".add_people").click(function () {
var orang_yg_diinvite = $("input[name='invite_people']").val();
$(".people_invited").append("<div><span class='people_added'>"+orang_yg_diinvite+ "</span></div>");
});
link 在 jsfiddle
我想做一些'invitation list'。当我们输入其他人的电子邮件并单击 添加按钮 时,我们输入的电子邮件显示在底部。我的代码如下所示:
HTML
<input type="email" name="invite_people" placeholder="Invite someone">
<a href="#!" class="add_people">Add</a>
<div class="people_invited">
<!--
this element
<div>
<span class="people_added"></span>
</div>
is added by Jquery
-->
</div>
Jquery
$(".add_people").click(function () {
var orang_yg_diinvite = $("input[name='invite_people']").val();
$(".people_invited").append("<div><span class='people_added'></span></div>");
$("span.people_added").text(orang_yg_diinvite);
});
刚刚好。但它仅在我们添加人员时才第一次起作用。当我们再次添加人员时,第一个 'add list people' 将替换为我们添加的最后一个。我想要的是每个 <span class="people_added">
里面都有不同的文本。像 bitbucket
不是那样(我的结果)
请帮助我:)
你的代码的问题是这一行:
$("span.people_added").text(orang_yg_diinvite);
这个选择器只有第一次是独一无二的。稍后你有更多 people_added
class 的跨度 - 所以你正在为所有这些跨度分配新文本。
您可以在创建新元素时附加文本,例如:
var divInnerText = "myText";
var newDiv = $("<div>" + divInnerText + "</div>");
它将产生以下元素:<div>myText</div>
您可以使用这种方法解决您的问题:
$(".add_people").click(function () {
var orang_yg_diinvite = $("input[name='invite_people']").val();
$(".people_invited").append("<div><span class='people_added'>" + orang_yg_diinvite + "</span></div>");
});
问题出在这一行
$("span.people_added").text(orang_yg_diinvite);
它所做的是用新值覆盖整个跨度元素,而不是像这样将它添加到追加函数中
$(".add_people").click(function () {
var orang_yg_diinvite = $("input[name='invite_people']").val();
$(".people_invited").append("<div><span class='people_added'>"+orang_yg_diinvite+ "</span></div>");
});
link 在 jsfiddle