任何人都可以在jQuery中解释这种奇怪的行为吗?我正在使用1.5.2版本。
var myxml = '<photo><Point srsName="EPSG:4326"><coordinates>0.153933,52.204674</coordinates></Point><id>24917</id><latitude>52.204674</latitude><longitude>0.153933</longitude><feature>3</feature><caption>No parking.</caption><url>http://www.google.co.uk</url><imageUrl>http://www.google.co.uk</imageUrl><thumbnailUrl>http://www.google.co.uk</thumbnailUrl><thumbnailSizes>60|120|150|180|200|250|300|350|400|400|425|450|500|640</thumbnailSizes></photo>';
console.log($(myxml).find('latitude').text());
console.log($(myxml).find('caption').text());
latitude
输出正确的值,但caption
是一个空字符串。
我也尝试过使用nodeName
,但我得到的结果相同。
有什么想法吗?谢谢!
更新:我还制作了一个jsFiddle来展示行为:http://jsfiddle.net/w8Z7z/
答案 0 :(得分:1)
Caption
似乎是一个保留字。所以,如果你使用例如captionX
就可以了。
尝试使用其他nodeName。
var myxml = '<photo><Point srsName="EPSG:4326"><coordinates>0.153933,52.204674</coordinates></Point><id>24917</id><latitude>52.204674</latitude><longitude>0.153933</longitude><feature>3</feature><captionX>No parking.</captionX><url>http://www.google.co.uk</url><imageUrl>http://www.google.co.uk</imageUrl><thumbnailUrl>http://www.google.co.uk</thumbnailUrl><thumbnailSizes>60|120|150|180|200|250|300|350|400|400|425|450|500|640</thumbnailSizes></photo>';
console.log($(myxml).find('captionX').text());
console.log($(myxml).find('latitude').text());
答案 1 :(得分:1)
如果先解析xml,然后将其传递给jquery,则可以正常工作:
var xmldoc=$.parseXML(myxml);
alert($(xmldoc).find('caption').text());
答案 2 :(得分:1)
您没有告诉jQuery您正在使用XML。 caption
是一个HTML标记和保留字,因此它变得混乱。您需要使用$.parseXML():
var myxml = '...(all that xml)...',
xmlDoc = $.parseXML( myxml ),
$xml = $( xmlDoc );
console.log($xml.find('caption').text());