JQuery、XML 和标签名称中的句点

标签 jquery xml

我订阅了一个第三方网络服务,该服务返回大量记录,并且标签名称中包含句点。

示例:

<row rownumber="1">
    <a.FirstName>John</a.FirstName>
    <a.LastName>Smith</a.LastName>
</row>
<row rownumber="2">
    <a.FirstName>Jane</a.FirstName>
    <a.LastName>Doe</a.LastName>
</row>

我正在使用 JQuery 来浏览记录,效果很好。

我可以从元素中获取当前行号,并循环遍历所有 2,000 条记录。

但是,我无法获取标签内的值。

$(xml).find('row').each(
    function(){
        alert( $(this).attr('rownumber') );  //WORKS GREAT! 
        //but
        alert( $(this).find('a.FirstName').text() ); //does not work 
    }
);

有什么想法吗?

谢谢, d

最佳答案

问题是您使用的选择器a.FirstName将被解释为带有FirstName类的 anchor 标记。如果标签名称中有特殊字符(例如点),则必须在选择器中使用两个反斜杠转义 .

jQuery documentation on selectors陈述以下内容:

If you wish to use any of the meta-characters ( such as !"#$%&'()*+,./:;<=>?@[]^`{|}~ ) as a literal part of a name, you must escape the character with two backslashes: \. For example, if you have an element with id="foo.bar", you can use the selector $("#foo\.bar").

试试这个:

$(xml).find('row').each(
    function(){
        alert( $(this).find('a\\.FirstName').text() );
    }
);

关于JQuery、XML 和标签名称中的句点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8993520/

相关文章:

java - 从 SOAP 消息中检索 Xpath

xml - Job Tracker 和 Task Tracker 没有在 Hadoop 中运行?

javascript - blueimp fileupload - 上传前检查图像的宽度和高度

javascript - 另一个 div 内的 div 偏移量

jquery - 如何继续允许用户单击直到某个点?

php - 在 PHP 中存储设置以便稍后编辑

xml - 在 Haskell 中,如何从 XML 文档中提取字符串?

java - 如何使一个 ImageView 在按下另一个 ImageView 时消失?

javascript - 使 document.ready 考虑外部 iframe 中的元素

javascript - $.each 重复 10 两次