我订阅了一个第三方web服务,该服务返回了大量记录,标记名中有一个句点。
示例:
<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来遍历记录,这很好。
我可以从元素中获得当前的行号,它会循环遍历所有2000条记录。
但是,我不能得到标签中的值。
$(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的achor标记。如果标签名称中有特殊字符(如点),则必须在选择器中用两个反斜杠转义.
。
关于选择器的jQuery文档说明如下:
如果您希望使用任何元字符(例如!"#$%\amp;'()*+,./:;<=>?@[]^`{|}~)作为名称的文字部分,您必须用两个反斜杠转义字符:\。例如,如果如果元素的id为"foo.bar",则可以使用选择器$("#foo\.bar").
试试这个:
$(xml).find('row').each(
function(){
alert( $(this).find('a\.FirstName').text() );
}
);