Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery find无法处理AJAX返回数据_Jquery_Html_Ajax - Fatal编程技术网

Jquery find无法处理AJAX返回数据

Jquery find无法处理AJAX返回数据,jquery,html,ajax,Jquery,Html,Ajax,我的AJAX返回html如下所示: function openFaceBox(path) { $.ajax({ type: "GET", url: path, success: function( data ) { $.facebox( data ); // data returns html var tableHeight = $(data).find('table').he

我的AJAX返回html如下所示:

function openFaceBox(path) {
    $.ajax({
        type: "GET",
        url: path,
        success: function( data ) {
            $.facebox( data ); // data returns html
                    var tableHeight = $(data).find('table').height();
                    console.log( tableHeight ); // Output : 0 (Zero)
        }               
    }); 
}

内容1
内容2
内容3
abcd
这里有些文字这里有些文字这里有些文字这里有些文字这里有些文字
这里有些文字这里有些文字这里有些文字这里有些文字这里有些文字这里有些文字
这里有些文字这里有些文字这里有些文字这里有些文字这里有些文字这里有些文字
文本在这里一些文本在这里一些文本在这里一些文本在这里一些文本在这里一些文本
这里有些文字这里有些文字这里有些文字这里有些文字这里有些文字这里有些文字
在这里
我不明白为什么
.find()
不起作用。基本上我想找到桌子的高度。如果有任何混淆,请告诉我。

使用
filter()

假定
数据
是一个
HTML
字符串,可以执行以下操作:

console.log($(data).filter('table'));

这将返回
,而不将数据添加到
DOM

我不知道$.facebox()是什么,但在将元素加载到DOM之前,您无法找到元素的高度。这有点疯狂,但它会让你长得更高

$(data).find('table');
$('body').append($('',{class:'faceboxHolder'}).css('left':'5000px','position':'absolute').append(data));
var tableHeight=$('.faceboxHolder').find('table').height();
$('.faceboxHolder').remove();

您需要执行以下操作

注册一个
leaver.facebox
事件处理程序

    $('body').append($('<div>',{class:'faceboxHolder'}).css('left':'5000px', 'position':'absolute').append(data));    

    var tableHeight = $('.faceboxHolder').find('table').height();

    $('.faceboxHolder').remove();
演示:

注:
$(data).find('table').height()
将不起作用,因为此元素尚未呈现到dom中,因此此元素没有高度/宽度。
一旦呈现了facebox项,facebox将触发一个
revleal.facebox
事件,并且默认情况下,facebox内容呈现为
#facebox.content
元素。

@SoumyaBiswas尝试添加height=“10”到表,然后重试..它始终有效..没有定义高度。实际上我想查找表的高度。表数据将增加。因此默认情况下无法设置表高度。
    $('body').append($('<div>',{class:'faceboxHolder'}).css('left':'5000px', 'position':'absolute').append(data));    

    var tableHeight = $('.faceboxHolder').find('table').height();

    $('.faceboxHolder').remove();
$(document).on('reveal.facebox', function(){
    var tableHeight = $('#facebox .content table').height();
    //Do whatever you want with the height
});

function openFaceBox(path) {
    $.ajax({
        type: "GET",
        url: path,
        success: function( data ) {
            $.facebox( data ); // data returns html
                    var tableHeight = $(data).find('table').height();
                    console.log( tableHeight ); // Output : 0 (Zero)
        }               
    }); 
}