Как я могу убедиться, что элемент был добавлен и существует после успешного выполнения ajax-запроса? - PullRequest
0 голосов
/ 18 февраля 2019

Если я использовал следующее, предполагая, что мои возвращенные данные с сервера являются HTML-элементом, таким как <span id='hiMark'> text </span>:

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

Если я использую это, безопасно ли использовать методы на добавленном элементеЯ знаю, что могу проверить, существует ли элемент, используя .length и, возможно, таймер, но нужно ли в этом случае проверять?

Если все будет хорошо на стороне сервера, будет ли метод css({})выполнить только после того, как элемент был добавлен?Или мне нужно сначала проверить, существует ли он?

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Вы должны проверить ответ с помощью чего-то вроде этого:

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
        }
0 голосов
/ 18 февраля 2019

Вы в безопасности, не проверяя наличие элемента.

Если строка res содержит элемент с идентификатором hiMark, он будет добавлен к телу сразу после запуска successи код будет работать так, как ожидается.

Если res содержит , а не содержит такой элемент, любые методы jQuery, вызываемые с этим идентификатором, будут тихо ничего не делать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...