jquery 1.9 .html()上的div在Chrome中不起作用? innerHTML也不是吗?

时间:2013-08-08 21:04:00

标签: javascript jquery ajax google-chrome

我正在使用此代码:

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:使用console.log获取$(数据).find(“#div_list”)赋予

[div, prevObject: st.fn.st.init[1], context: document, selector: "#div_list", jquery: "1.9.0", constructor: function…]

此外,将数据类型更改为“html”不会做任何事情。

2 个答案:

答案 0 :(得分:0)

好的,所以我想出了一个简单的方法来做我想做的事。

我发现使用jquery的$ .load()方法将所有内容都解析为HTML。这样,即使没有为Chrome中的XML定义InnerHTML(我认为代码不能在chrome中工作的原因),它仍然有效。

答案 1 :(得分:0)

我得到了相同的异常,但在我的情况下,我使用了jquery的xml解析,我想要的是从解析中获取String以更新文件/字符串。

$(xmlParsed).find(selector).text(value);
$root = $(xmlParsed).find('root');

异常出现在:

$root.html()

它的工作方式是:

xmlFile = (new XMLSerializer()).serializeToString($root.context)