我试图检查任何使用ajax发送的id和响应json从json获取id然后检查是否有一个id进入span然后添加它但是不工作总是添加并添加越来越多< / p>
Jquery的
e.results.forEach(function(e) {
var name = e.name;
var id = e.id;
if ($(".visitors span").length) {
$('.visitors span').each(function() {
var data_id = $(this).attr('data-id');
if (data_id != id) {
$(".visitors").append("<span data-id='" + id + "'>" + name + "</span>");
}
});
} else {
$(".visitors").append("<span data-id='" + id + "'>" + name + "</span>");
}
});
答案 0 :(得分:1)
虽然我认为您的代码是正确的,但有一个建议:您只需检查是否存在data-id
的范围(使用CSS Attribute-Equal Selector),而不是循环浏览范围。如果没有追加这样的新范围:
e.results.forEach(function(e) {
var name = e.name;
var id = e.id;
var $span = $(".visitors span[data-id = '" + id + "']"); // select all the spans that have the data-id equal to id
if (!$span.length) { // if there is none
$(".visitors").append("<span data-id='" + id + "'>" + name + "</span>"); // then add a new one
}
});