Safari的条带标签

问题描述:

的Safari始终表示其最好与(在JavaScript)的代码实例显示出一些怪异的行为:Safari的条带标签

var xml = "<whatever><status>success</status><title>interface update</title><details>just an example</details></whatever>" 
var $jquery_xml = jQuery(xml); 
var $jquery_xml.html(); 

最后一行应该返回:

<status>success</status><title>interface update</title><details>just an example</details> 

但是,它实际上返回

<status>success</status><details>just an example</details> 

标签已被删除!任何关于为什么的想法,以及如何在仍然使用jQuery的情况下解决这个问题?

+1

也许它是因为''

是一个特殊的标签,它的头部分使用只是一种预感:) – <span class="text-secondary"> <small> <a rel="noopener">Val</a></small></span> <span>2011-02-22 20:59:37</span>
+0

嗨,我的看法是瓦尔的。它也在IE8上失败,但在Firefox上工作。如果您将标签更改为“ ..”,则它适用于所有这些浏览器,包括Safari。 – Neil 2011-02-22 21:26:54

+0

我认为就是这样。但是有点令人担忧,因为大量的XML文档都有

标签以及HTML中出现的其他标签。我不确定这只是删除它们的原因 - 它是有效的XML,对吧?也许我应该考虑在Safari上使用除jQuery以外的其他语法进行解析? – <span class="text-secondary"> <small> <a rel="noopener">NudeCanalTroll</a></small></span> <span>2011-02-22 21:57:07</span>

jQuery有built in XML parser,这可能会更好地为您服务。

var xml = "<whatever><status>success</status><title>interface update</title><details>just an example</details></whatever>"; 
var $jquery_xm = jQuery.parseXML(xml); 
+0

'parseXML'只在jQuery 1.5以后才存在,但这是一条路。值得注意的是:你从'parseXML'返回的对象是一个XML'Document'对象,你需要传递给'$()'把它变成一个jQuery对象,然后你可以查询和遍历它。 – 2011-02-23 01:08:55