Как сравнить HTML-запрос AJAX? - PullRequest
0 голосов
/ 02 ноября 2019

Я получаю div в ответ на запрос ajax,

Я пытаюсь сравнить внутренний html этого div,

<div>Blocked</div>

и с jq

success : function(msg){
   if(m.html() == 'Blocked'){
     alert('Blocked');
   }
}

но выдает ошибку

msg.html is not a function

что не так?

Ответы [ 4 ]

0 голосов
/ 02 ноября 2019

Полагаю, ваши данные пришли в ответ, а не строка выбора. Я имею в виду, что «msg» может выглядеть как «SOmething.

». Поэтому, если ваши данные поступают в этом формате, вы не можете использовать html () для строки, поскольку в строковом типе таких методов нет.

Итак, ответ будет примерно таким.

success : function(msg){
     if(msg)
     {
       var msg = $(msg).text()
       if(msg == 'Blocked')
        alert('blocked');
     }
 }

Надеюсь. Это сработает.

0 голосов
/ 02 ноября 2019

Можно попробовать

success : function(msg){
   if($('<div/>').html(msg).text().trim() === 'Blocked'){
     alert('Blocked');
   }
}
0 голосов
/ 02 ноября 2019

ответ на ваш ajax-запрос - строка, так что вы можете использовать строковый метод. вы можете использовать includes () , чтобы проверить, есть ли внутри строки какая-то конкретная строка.

или в jquery вы можете попробовать это:

success : function(msg){
   if(msg.includes('Blocked')){
     alert('Blocked');
   }
}
0 голосов
/ 02 ноября 2019

Ответ, который вы получаете, является строкой, поэтому вы не можете использовать jquery-функцию html () для него.

Вы должны использовать строковые функции, чтобы получить свой код. Как

var message = msg.substring(
   msg.lastIndexOf("<div>") + 1, 
   msg.lastIndexOf("</div>")
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...