我有这个 HTML 列表
<ul id='usernameList'>
<li class='username'>John</li>
<li class='username'>Mark</li>
</ul>
以及通过 AJAX 添加新名称的表单,多个添加以逗号分隔。响应是一个包含名称的列表
[{name:David, newUser:yes}, {name:Sara, newUser:yes}, {name:Mark, newUser:no}]
我正在尝试在列表中插入按字母顺序排序的名称,例如此示例https://jsfiddle.net/VQu3S/7/
这是我的 AJAX 提交
var form = $('#formUsername');
form.submit(function () {
$.ajax({
type: form.attr('method'),
url: form.attr('action'),
data: form.serialize(),
dataType: "json",
beforeSend: function () {
//
},
success: function (data) {
var listUsernames = $('#usernameList');
var numUsernames = listUsernames.children().length;
$.each(data, function(i, user) {
if(user.newUser == "yes"){
var htmlUser = "<li class='username'>" + user.name + "</li>";
var added = false;
$(".username", listUsernames).each(function(){
if ($(this).text() > user.name) {
$(htmlUser).insertBefore($(this));
added = true;
}
});
if(!added)
$(htmlUser).appendTo($(listUsernames));
}
// HERE I DO alert('numUsernames')
// I get the same number of users before sending form
// How can I update here the value of listUsernames and numUsernames?
});
}
});
return false;
});
我的问题是,如何在添加项目后listUsernames
更新其价值?numUsernames