选择器中的不区分大小写?
我正在尝试使用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或您可以通过快速搜索找到的任何库
我的问题是我从另一个站点拉出的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文档。