我想將圖像加載到基於XML的屏幕上。這裏是我使用的xmljQuery - 從xml中加載圖像不工作在鉻合
<item>
<heading>Heading 1</heading>
<content>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec fringilla tempus varius. Nulla facilisi. In nisi leo, commodo id vestibulum non, mollis quis justo. Nunc elementum feugiat gravida. Praesent condimentum nisi id sapien placerat sed posuere velit fringilla. Curabitur ac purus odio. </content>
<image>image.jpg</image>
</item>
<item>
<heading>Heading 2</heading>
<content>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec fringilla tempus varius. Nulla facilisi. In nisi leo, commodo id vestibulum non, mollis quis justo. Nunc elementum feugiat gravida. Praesent condimentum nisi id sapien placerat sed posuere velit fringilla. Curabitur ac purus odio. </content>
<image>image.jpg</image>
</item>
而我正在用這樣的jQuery檢索元素。
$.get('feed1.xml', function(xml) {
$(xml).find('item').each(function() {
content+= "\<li class=\"paginate\"\>";
content+= '\<img src=\"' + $(this).find('image').text() + '\"\/\>';
content+= "\<h3\>" + $(this).find('heading').text() + "\<\/h3\>" ;
content+= "\<p\>" + $(this).find('content').text() + "\<\/p\>";
content+="\<\/li\>";
});
這適用於Firefox。然而,在Chrome和IE中,「標題」和「內容」按預期加載,但圖像部分返回空字符串。我調試了一下,注意到如果我只是將元素名稱'image'更改爲其他名稱,則相同的代碼在Chrome中也可以使用。然後我做了一個console.log來了解後臺發生了什麼。
$(xml).find('item').children().each(function(){
console.log((this).nodeName);
});
這回,
HEADING
CONTENT
IMG
鉻,而FF保留的元素名稱。
我也嘗試將源代碼改爲這個 content + ='\';
但是這也沒有工作。
爲什麼Chrome會將元素名稱'image'更改爲'img'?另外,爲什麼當它存在於DOM中時無法找到對象'img'?
圖像不是有效的標籤名字,img是。它看起來像你的XML被解析爲HTML。 –
我沒有看到任何特定的XML規則,使w3規範中的標籤失效。即使我們假設這是一分鐘,當我使用find('img')時,圖像應該已經加載。 –
skmvasu