我收到以下回复
<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 :(得分:2)
你要做的不是那么清楚。页面中是否已存在id="weblogs"
的元素?如果是这样,为什么你的响应有一个具有相同id的元素(不是一个好主意),如果没有,为什么你试图将元素的内容添加到它自己(也不是一个好主意)?
为什么不改变服务器端以发送所需的html,而没有包装div
标签(这使得它无效的html,另一个坏主意),然后按原样使用它?
另一个问题是你试图选择永远是空的jquery对象的.html()
:$(selector, string)
永远不会匹配任何东西。如果要搜索其子结构,则需要将字符串设为jquery对象:string = $(string)
。
我认为你误解了$(selector, $obj)
的使用。选择器必须位于$obj
的子 -structure:
$('#foo', $('<div id="foo"><span/></div>')); // returns empty jquery object
因此,在ID为#weblogs
的元素的子结构中查找weblogs
也无法找到任何内容。
答案 1 :(得分:0)
您的问题并不完全清楚,但我会尝试回答:您使用的是Internet Explorer吗?如果是这样,请考虑文档中的这一段:
例如,如果属性值仅包含字母数字字符,则Internet Explorer有时会忽略引号。