选择器中的不区分大小写?

我正在尝试使用jQuery进行XML处理。 我遇到jQuery的一个问题是它在处理标签和属性时不区分大小写。

例如,请考虑以下代码:

$("
Some title
").html()

我们得到的输出是:

 Some title 

而我正在寻找的输出是:

 Some title 

有可能吗? (注意“B”是大写字母,整个属性名称“ISBN”也是大写字母,而jQuery html输出完全是小写的情况)请帮忙。

根据http://www.w3.org/TR/CSS21/selector.html,HTML元素名称不区分大小写,但在XML中它们区分大小写。 属性名称也是如此。

因此,您获得的HTML输出是正确的。 据我所知,jQuery核心无法创建HTML文档,其中区分大小写对元素和属性名称很重要。

编辑:见下文。 我原先说jQuery不能创建一个案例敏感性很重要的XML文档。 显然,它可以。 但是,如果你注入HTML,它就无法保留这种情况。 有关解决方案,请参阅: jQuery将XML标记转换为大写

问题是.html()… html本身应该是小写的,所以jquery jsut返回“有效”的html格式。 如果你需要解析xml我肯定有librairy这样做会保留你的Xml的Case。

我个人会尝试使用parsexml或您可以通过快速搜索找到的任何库

http://api.jquery.com/jQuery.parseXML/

我的问题是我从另一个站点拉出的XML输出实际的XML数据作为编码的HTML … IE:

   <net id="District 3" name="District 3"> <updateTimestamp>2014-04-16T22:15:42-05:00</updateTimestamp> <category>Current</category>   

所以我无法控制它是如何输出的,最初我只是通过ajax使用基本的jQuery来获取XML,然后使用返回的数据

 $.get(eventDataURL, {}, function (rawXML) { var xml = $(rawXML).text(); } 

如果我使用$(rawxml).text(); 它让我们可以通过每一个,当我将数据输入$(xml).find('event').filter(function(){ ....时,问题出现了$(xml).find('event').filter(function(){ ....

一旦它通过.find.filter所有的cameCasing都丢失了,并且为依赖骆驼套管的东西制造了很多问题。

所以简单的修复就像上面提到的其他修复:

 $.get(eventDataURL, {}, function (rawXML) { var xmlText = $(rawXML).text(); xml = $.parseXML(xmlText); } 

只需使用$.parseXML它就将该文本转换为一个没有丢失camelCasing的有效XML文档。