选择另一个div中的每个div并使用jQuery检查它的类

时间:2014-09-20 21:12:02

标签: javascript php jquery html

我有一个聊天系统,我使用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;但它没有用。

1 个答案:

答案 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]
        }));
    }
}