我正在使用这段代码:
function updateList(searchStr){
$.ajax(getSearchURL(true) + searchStr).done(function(data) {
$("#div_list").html($(data).find("#div_list").html());
});
};
用新数据更新我的 div #div_list。
当我在 FF 中这样做时,它完美无缺。但是,在 chrome 中,它在控制台中失败并显示以下消息:
Uncaught TypeError: Cannot call method 'replace' of undefined
我将代码分为 2,如下所示:
function updateList(searchStr){
$.ajax(getSearchURL(true) + searchStr).done(function(data) {
var test = $(data).find("#div_list").html();
$("#div_list").html(test);
});
};
Chrome 告诉我 var 测试线有问题。
玩了一会才发现
$(data).find("#div_list")
确实已定义,因为对此的警告将给出 [object Object]
所以我说,见鬼,那我就用普通的非 jquery 方法,然后尝试:
function updateList(searchStr){
$.ajax(getSearchURL(true) + searchStr).done(function(data) {
$("#div_list").html($(data).find("#div_list")[0].innerHTML);
});
};
这也失败了,同样的 TypeError。
有人能指出我正确的方向吗?
非常感谢。
编辑:示例答案
<?xml version="1.0" encoding="UTF-8"?>
<html>
<div version="2.0" id="div_list">
<script type="text/javascript">
dojo.require('dijit.TitlePane');
</script>
<div id="XXX">
<table>
<thead>
<tr>//Some rows
</tr>
</thead>
<tr>More rows with data
</tr>
<tr class="footer">
<td colspan="7"><span class="new"><a href="/items?form"><img title="Create new Item"
src="/resources/images/add.png" alt="Create new Item" /></a></span></td>
</tr>
</table>
</div>
</div>
</html>
EDIT2:为 $(data).find("#div_list") 使用 console.log 给出
[div, prevObject: st.fn.st.init[1], context: document, selector: "#div_list", jquery: "1.9.0", constructor: function…]
此外,将数据类型更改为“html”也无济于事。