2011-06-20 40 views
0

我得到如下回应HTML()不检索整个内容

<div id="weblogs"> 
    <tr> 
     <td nowrap class="bl">1</td> 
    </tr> 
    <tr> 
     <td nowrap class="bl">2</td> 
    </tr> 
</div> 

现在我试图附加类似下面的行:

function _ajax(postData) 
    {  
     loadUrl   = "getweblogs.asp"; 
     $.ajax({ 
      url : loadUrl, // your ajax file 
      type : 'post', 
      data : postData,     
      success : function(resp) { 
       alert($("#weblogs" , resp).html()); 
       $('#weblogs > tbody:last').append($("#weblogs" , resp).html()); 

      } 
     }); 
     return false; 
    } 

的更换工作正常。我的问题是,响应中的htmls元素被删除。我只得到1和2.而不是

<tr> 
     <td nowrap class="bl">1</td> 
    </tr> 
    <tr> 
     <td nowrap class="bl">2</td> 
    </tr> 

我不知道我做错了什么。有人能给我任何线索吗?

谢谢!

问候 玛格达

+0

你的意思是说你只得到1和2? – Karolis

+0

你意识到你没有tbody元素,不是吗? –

+0

喜karolis, 1 给我1.有遗漏的HTML标签。严格来说这部分 is missing –

回答

2

什么你想要做的不是那么清楚。页面中是否已有一个元素id="weblogs"?如果是这样,为什么你的回应有一个元素具有相同的ID(不是一个好主意),如果不是,你为什么试图将元素的内容附加到它自己(也不是一个好主意)?

为什么不只是改变服务器端发送所需的HTML,没有包装div标记(这使得它无效HTML,另一个坏主意),然后按原样使用它?

另一个问题是,你试图选择.html()的东西,将永远是一个空的jQuery对象:$(selector, string)永远不会匹配任何东西。如果要搜索其子结构,您需要将该字符串设置为jquery对象:string = $(string)

我认为你误解了$(selector, $obj)的使用。选择器必须在$obj - 结构:

$('#foo', $('<div id="foo"><span/></div>')); // returns empty jquery object

中的一个元素的子所以找#weblogs ID为weblogs也永远不会发现任何东西。

+0

嗨达文, 感谢您的重播。 1.我有一个ID博客的表。

2.我想填充更多的div,这就是为什么我用div来包装所有东西。 3.字符串匹配,但没有html标签... –

+0

@Magda,“填充更多divs”不是你可以对表格做的事情。一个表格包含行,而不是div。 – davin

+0

嗨达文, 对不起。我的意思是我想填写更多的divs和一张桌子。 –

0

您的问题并不完全清楚,但我会试着回答:您使用的是Internet Explorer吗?如果是这样,请从文档中考虑以下段落:

例如,如果Internet Explorer有时仅留下属性值的引号(如果它们仅包含字母数字字符)。

API docs: html()

+0

嗨ben, 谢谢你的回答。不,它发生在Firefox 4.0.1 –