我订阅了一个第三方网络服务,该服务返回大量记录,并且标签名称中包含句点。
示例:
<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/