我有一个聊天系统,我使用jQuery + JSON + PHP显示消息。我的问题是:我必须在div中选择每个div"#chatMessages",它包含消息,并检查它的类以查看它是否存在,我的Ajax代码:
var data = {};
$.ajax({
type: "GET",
dataType: "json",
url: "../room/a.php",
async: true,
cache: false,
data: data,
success: function(response) {
if(response.error) {
alert(response.msg);
} else {
for(var i = 0; i < response.length; i ++) {
if($("#chatScreen > *").hasClass("message" + i) == false)
$("#chatScreen").append($("<div>",{
class : 'message' + response[i][1],
html : response[i][0] + ' ' + response[i][4]
}));
}
}
},
error: function (response) {
},
complete: function () {
}
});
response[i][0]
包含名称,response[i][4]
包含消息。它运行正常,但是我每隔3000ms加载一次这个函数,所以它重复每条消息,如何检查每个div的div搜索类'message' + response[i][1]
(包含来自MySQL的唯一ID)?
我尝试使用&#34; .hasClass()&#34;但它没有用。
答案 0 :(得分:0)
如果你想知道DIV中是否有任何给定类的元素,你可以这样做:
if ($("#chatScreen").find(".message"+response[i][1]).length > 0) {
您可以重构它,这样您就不必每次都在循环中搜索#chatScreen
:
var chatScreen = $("#chatScreen");
for(var i = 0; i < response.length; i ++) {
if(chatScreen.find(".message"+response[i][1]).length > 0) {
chatScreen.append($("<div>",{
class : 'message' + response[i][1],
html : response[i][0] + ' ' + response[i][4]
}));
}
}