Javascript和Firefox中基于jQuery的HTML解析:can';无法解释行为
我正在编写一个小脚本,在jQuery的帮助下解析HTML页面;虽然我的脚本在Chrome、IE和Safari中可以正常工作,但我无法解释它在Firefox(版本36.0.1)中的行为。这是: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
$.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,除非您确实需要空格、注释节点等。