我试图使用jQuery .post()从另一个页面加载内容来解析返回的HTML,以便只提取我想要的部分。jQuery find()只在IE中返回null
问题是,虽然这在Firefox等工作,它不能在IE中工作。
我已经追踪到find()函数的问题。 IE和FF都成功地使用post从另一个页面(存储在“data”对象中)加载html。但是,虽然这行
debugText += jq(data).find('#timeline_events').html();
在Firefox中产生输出,它在IE中产生空值。
我已经做了大量的研究,据我所知,这可能是因为jQuery冲突,或者因为它加载的页面是xhtml。
在第一种情况下,我使用var jq = jQuery.noConflict(),并在所有jquery调用中使用“jq”而不是“$”。 在第二种情况下,我已经尝试将明确的帖子返回数据类型明确地声明为html和xml,结果没有任何变化。
任何想法?
<script type="text/javascript" charset="utf-8">
var jq=jQuery.noConflict();
var debugText = "";
function loadNext()
{
jq.post("test.html", function(data)
{
debugText += jq(data).find('#myEvents').html();
}
}
</script>
更新: 这里是测试页面一些HTML,我想加载到当前页面的一个样本:
<table id="myEvents">
<tbody>
<tr>
<td>Test</td>
</tr>
</tbody>
</table>
我最终会想要做的就是拔出td中的元素并将它们插入到当前页面上的另一个表中。
-Update- jQuery的版本我使用:1.2.3
数据载入到文档中隐藏的对象,然后使用jquery来选择必要的id元素产生相同的结果 - 即,IE中为null,否则工作。
多个元素是否有'id =“timeline_events”'? – thirtydot
您是否尝试过'jq(“#timeline_events”,data)' –
您的标记是否在响应数据中形成?这在IE中有时会造成问题。 – ShankarSangoli