Jquery find无法处理AJAX返回数据
我的AJAX返回html如下所示: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
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)
}
});
}