我遇到以下问题。在来自jQuery get函数的回调中,我有以下代码。
x = $.parseXML(data)
xmlDoc = $(x)
y = xmlDoc.find("message")
msg = y.html()
if msg == "MISSING FILE"
# do something about the missing file
else
# xmlDoc IS the document I want.
换句话说,我从服务器上得到了一些东西。如果它是一个带有“message”标签的XML文档,上面写着“MISSING FILE”,那么我就处理它了。如果不是,我正常使用该XML文档。
此代码在Firefox中运行良好。但是在Safari中,在MISSING FILE的情况下,当我尝试使用y.html()时出现以下错误时,jQuery会爆炸:
TypeError: 'undefined' is not an object (evaluating 'n.innerHTML.replace')
看起来y的值是
[<message>MISSING FILE</message>]
但是Safari上的jQuery无法对其执行.html()。
答案 0 :(得分:0)
行。感谢来自@AdamMerrifield和@ArunPJohny的提示,我对find()返回的对象的键进行了更多调查。
在Safari上它肯定没有innerHTML。
最终我找到了
x = $($.parseXML(data.toLowerCase())).find('message')[0]
msg = x["textContent"]
诀窍。 [“textContent”]似乎在我的Android平板电脑上的Mac和Chrome上的Linux,Safari和Firefox上的Chromium和Firefox上产生相同的结果。
还需要在IE上进行测试(它可能都会出现可怕的错误)。