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

  • 本文关键字:句点 XML JQuery jquery xml
  • 更新时间 :
  • 英文 :


我订阅了一个第三方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() );
    }
);

最新更新