我如何确定ajax请求成功后附加了元素并存在?

时间:2019-02-18 20:03:45

标签: javascript jquery ajax

如果我使用了以下内容,则假设我从服务器返回的数据是一个HTML元素,例如<span id='hiMark'> text </span>

...,
success: function(res){
    $(res).appendTo('body');
    $('#hiMark').css({ … }) 
}

如果使用此方法,在附加元素上使用方法是否安全?我知道我可以使用.length以及一个计时器来检查某个元素是否存在,但是在这种情况下我是否必须进行检查?

如果服务器端一切正常,css({})方法是否仅在附加元素后才执行?还是我需要首先检查它是否存在?

2 个答案:

答案 0 :(得分:0)

无需检查元素是否存在,您就很安全。

假设res字符串包含ID为hiMark的元素,则它将在success运行时立即附加到主体,并且代码将按预期运行。

如果res 不包含这样的元素,则在该ID上调用的任何jQuery方法都将不执行任何操作。

答案 1 :(得分:-1)

您应该使用以下类似的内容检查响应:

if(response != null && response!= undefined){
//append my stuff
}

或:

//if your response is a string  

       if (response != "" ) 

    // if your response is a json object

        if(isEmpty(response)) {
            // response is empty (Would return true in this example)
        } else {
            // response is NOT empty
        }