如何为JQUERY AJAX响应函数添加条件语句

时间:2013-12-31 15:06:46

标签: javascript jquery ajax if-statement

这是我的代码:

jQuery(document).ready(function () {
    jQuery(".jlk").live("click", function (e) {
        e.preventDefault();
        var task = jQuery(this).attr("data-task");
        var post_id = jQuery(this).attr("data-post_id");
        var nonce = jQuery(this).attr("data-nonce");
        var currentClass = $(this).attr('class');

        jQuery(".status-" + post_id).html("  ").addClass("loading-img").show();

        jQuery.ajax({
            type: "post",
            dataType: "json",
            url: wtilp.ajax_url,
            data: { action: "wti_like_post_process_vote", task: task, post_id: post_id, nonce: nonce },
            success: function (response) {            
                jQuery(".lc-" + post_id).html(response.like);
                jQuery(".unlc-" + post_id).html(response.unlike);
                jQuery(".status-" + post_id).removeClass("loading-img").empty().html(response.msg);
            }
        });
    });

    // Other users tooltip
    jQuery("span.wti-others-like").live("mouseover", function () {
        jQuery(this).children("span").show();
    });

    jQuery("span.wti-others-like").live("mouseout", function () {
        jQuery(this).children("span").hide();
    });
});

我正在尝试添加这样的条件语句:

if (jQuery(".lc-" + post_id).html(response.like)) {
                    $(".action-unlike-" + post_id + " img").removeClass('opacity-none'); $(".action-like-" + post_id + " img").addClass('opacity-none'); alert('positive');        
                }
                else if (jQuery(".unlc-" + post_id).html(response.unlike)) { $(".action-like-" + post_id + " img").removeClass('opacity-none'); $(".action-unlike-" + post_id + " img").addClass('opacity-none'); alert('negative'); }

但它总是提醒'积极',就像不读我的条件一样。

我怎样才能做到这一点?

if(response.like =='true'){do this} else if(response.unlike =='true'){do this}?

3 个答案:

答案 0 :(得分:1)

jQuery HTML方法总是返回true,因为它是一种在传入值时设置HTML的方法。

请参阅:http://api.jquery.com/html/

如果您的HTML是输入字符串,则需要查找“Val”方法。

请参阅:http://api.jquery.com/val/

如果您真的想要检查HTML,则需要检查传入NO值的.html()。然后对该HTML执行字符串或其他比较。

答案 1 :(得分:0)

H i,

if语句是一个声明(它是设置html,而不是获取HTML和检查)

  if (jQuery(".lc-" + post_id).html(response.like)) { ... 

你的意思是:

 if (jQuery(".lc-" + post_id).html()===response.like) { ... 

答案 2 :(得分:0)

您应该使用$(".lc-" + post_id).html()检查HTML response.like之类的HTML值,而不是在其中设置值。您可以使用以下代码替换代码:

if ($(".lc-" + post_id).html() == response.like) {
    $(".action-unlike-" + post_id + " img").removeClass('opacity-none');
    $(".action-like-" + post_id + " img").addClass('opacity-none');
    alert('positive');
} else if ($(".unlc-" + post_id).html() == response.unlike) {
    $(".action-like-" + post_id + " img").removeClass('opacity-none');
    $(".action-unlike-" + post_id + " img").addClass('opacity-none');
    alert('negative');
}
祝你好运!