如果变量包含字符串,则jQuery执行

时间:2011-11-09 02:25:42

标签: jquery ajax if-statement click

好吧,所以我有一个按钮,当点击时,将改变给定div的类。问题是,如果变量(答案)不包含字符串“No”,我只希望发生这种情况。这有效......但问题是即使变量不包含单词“No”,代码也不会执行。 ajax结果包含“无用户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 个答案:

答案 0 :(得分:3)

success函数在调用myajax后返回

第一个&#39; a&#39;在ajax中代表异步,所以你想将整个代码块移动到成功函数中,喜欢:

$(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);
        }
    });
}
});