Javascript和Firefox中基于jQuery的HTML解析:can';无法解释行为

Javascript和Firefox中基于jQuery的HTML解析:can';无法解释行为,javascript,jquery,html,firefox,Javascript,Jquery,Html,Firefox,我正在编写一个小脚本,在jQuery的帮助下解析HTML页面;虽然我的脚本在Chrome、IE和Safari中可以正常工作,但我无法解释它在Firefox(版本36.0.1)中的行为。这是: $.ajax({ url: 'myURL.aspx', async: false, success: function (data) { html = $.parseHTML(data, document, true); $.each(html, function

我正在编写一个小脚本,在jQuery的帮助下解析HTML页面;虽然我的脚本在Chrome、IE和Safari中可以正常工作,但我无法解释它在Firefox(版本36.0.1)中的行为。这是:

$.ajax({
    url: 'myURL.aspx',
    async: false,
    success: function (data) {
    html = $.parseHTML(data, document, true);

    $.each(html, function (i, el) {
        if (el.nodeName === "FORM") {
            $.each(el.childNodes, function (j, n) {
                if (typeof n != "undefined") {
                    if (n.nodeName === "SCRIPT") {
                        if (typeof n.innerText != "undefined") {
                            if (n.innerText.indexOf("...") != -1) {
                                if (n.nodeType == 1) {
                                    $("body").append(n);
                                }
                            }
                        }
                    }
                }
            });
        }
    });
}
}))


问题是,我在调用
append
的行上设置了一个断点,如果我在调试器第一次中断时检查
n
的属性,我会看到
n.nodeName
不是
SCRIPT
n.innerText
未定义的
n.nodeType
3
。有什么我完全误解了吗?

看来Firefox 36.0.1对属性
innerText
并不完全合适(谢谢apsillers!)。我将其替换为
textContent
,现在该脚本可以在Firefox、Chrome、IE和Safari中使用。

Firefox现在似乎支持
innerText
属性,尽管参加派对的时间很晚:。我不确定这是否与您的问题有关。请使用elm.children而不是elm.childNodes,除非您确实需要空格、注释节点等。