Jquery查找响应是否包含元素

时间:2012-06-01 14:39:53

标签: javascript jquery

如何查找响应是否包含元素表单

    $.ajax({
        url     : $(this).attr('action'),
        type    : 'POST',
        success : function(response){
            if($(response).find('form').length)
            {
                alert("hii");
            }
        }
    });

表单可能是响应中最重要的元素,也可能是中间的某个元素

4 个答案:

答案 0 :(得分:2)

$.ajax({
        url     : $(this).attr('action'),
        type    : 'POST',
        dataType: 'html', // you should set it 
                          //  if you response send html only
        success : function(response){
            if($(response).filter('form').length)
            {
                alert("hii");
            }
        }
    });

根据更新:

        ....
        dataType: 'html',
        success : function(response){
            var container = $('<div/>').append(response);
            if($(container).find('form').length)
            {
                alert("hii");
            }
        }

答案 1 :(得分:0)

$.ajax({
    url     : $(this).attr('action'),
    type    : 'POST',
    success : function(response){
        var hasForm = $("<div></div>").append(response).find("form").length > 0;
        if(hasForm)
        {
            alert("hi");
        }
    }
});

答案 2 :(得分:0)

dataType:'html'强制jQuery将响应视为简单的html。我正在使用“has”函数,它将匹配的元素集减少到仅包含其中某个表单的元素。

 $.ajax({
        url     : $(this).attr('action'),
        type    : 'POST',
        dataType : 'HTML',
        success : function(response){
           $(response).has('form').doMoreWorkHere();
        }
    });

或者,您可以通过

编写更短的内容
$.post($(this).attr('action'), {}
       function(response){
         $(response).has('form').doMoreWorkHere();
       }, 'html');

答案 3 :(得分:-1)

'回应'来自哪里?它的格式是什么?

我在json发送我的退回的变量:

success: function(msg){
    var obj = jQuery.parseJSON( msg ); 
    alert( obj.VARNAMEHERE );
}

或者您可以检查整个响应而不是特定变量。这样可以让您了解如何遍历结果以找到您要查找的内容。