JQuery выполнить, если переменная содержит строку
Хорошо, у меня есть кнопка, которая при нажатии изменяет класс данного элемента. Дело в том, что я хочу, чтобы это происходило только в том случае, если переменная (ответ) не содержит строку "Нет". Это работает... но проблема в том, что даже если переменная не содержит слова "Нет", код не будет выполняться. Результат ajax содержит либо "No ID пользователя", либо "ID пользователя:#".
$(document).ready(function() {
$('.like').on('click', function() {
postID = $(this).attr('id').replace('like_', '');
// Declare variables
value = '1';
myajax();
return false;
var doit = answer.IndexOf("No");
if (doit < 0){
$('#post_' + postID).removeClass('dislike').addClass('like');
}
});
function myajax(){
// Send values to database
$.ajax({
url: 'check.php',
//check.php receives the values sent to it and stores them in the database
type: 'POST',
data: 'postID=' + postID + '&value=' + value,
success: function(result) {
answer = result;
$('#Message_' + postID).html('').html(result).prependTo('#post_' + postID);
}
});
}
});
Так что я знаю, что моя проблема заключается в var doit. Я просто не могу понять, что с ним не так.
1 ответ
Решение
success
функция выполняется после вызова myajax
возвращается
первое "a" в ajax означает асинхронный, поэтому вы хотите переместить весь блок кода в функцию успеха, likeo:
$(document).ready(function() {
$('.like').on('click', function() {
postID = $(this).attr('id').replace('like_', '');
// Declare variables
value = '1';
myajax(function(answer) {
if (answer.indexOf("No") < 0){
$('#post_' + postID).removeClass('dislike').addClass('like');
}
});
return false;
});
$('.dontlike').click(function() {
myajax(function(answer) { alert('check.php returned:' + answer); }
});
function myajax(onSuccess){
// Send values to database
$.ajax({
url: 'check.php',
//check.php receives the values sent to it and stores them in the database
type: 'POST',
data: 'postID=' + postID + '&value=' + value,
success: function(result) {
$('#Message_' + postID).html('').html(result).prependTo('#post_' + postID);
onSuccess(result);
}
});
}
});