我已經將一個狗的名字從Pg1傳遞到Pg2。我已在下面的代碼中添加註釋,以逐步解釋發生的事情。我的代碼一直運行到最後一個函數,該函數應該搜索girls.xml中的狗名,並將相關節點加載到Pg2中的配置文件中。通過名稱變量將不會加載新的XML內容
如果您有任何改進我的代碼的建議,我將不勝感激。善待我自學:-)
這是litters.xml文件是如何被格式化
<?xml version="1.0" encoding="utf-8"?>
<litter>
<litter_id>201704</litter_id>
<dogs_mom>June Bug</dogs_mom>
<dogs_dad>Oscar</dogs_dad>
</litter>
這是girls.xml文件是如何被格式化
<?xml version="1.0" encoding="utf-8"?>
<breeder>
<girls>
<dog>
<dogs_breeding_name>Adora</dogs_breeding_name>
<profile>
<![CDATA[<strong>Adora</strong> is a second generation puppy. Adora lives in a guardian home. ]]>
</profile>
</dog>
</girls>
</breeder>
在pg1.html狗媽媽的名字已被點擊(litters.xml)並傳遞到pg2.html
$(".thumb-but-link").click(function (e) {
e.preventDefault();
var i = $(e.currentTarget).text();
window.location.href = '../xml/pg2.html' + '#' + i;
});
的pg2.html文件加載girls.xml文件
$.ajax({
type: "GET",
url: "../xml/girls.xml",
dataType: "xml",
success: findDog
});
的findDog函數加載女孩節點
function findDog(xml){
$(xml).find('girls').each(function() {
girlsXml = $(this);
然後使用if語句來檢查以查看是否從pg1.html傳遞了新的狗名稱,如果沒有名稱通過,它將加載默認(第一隻狗) e girls.xml文件放入頁面上的狗檔案。
if(window.location.hash.substring(1)) {
var i = location.hash.match(/^#?(.*)$/)[1];
var x = girlsXml.find('dog:contains("i")');
loadClickedContent(x)
}else{
var x = girlsXml.find('dog').first();
loadClickedContent(x)
}
});
}
function loadClickedContent(x) {
girlsXml.find(x).each(function() {
var x = $(this);
var dogsBreedingName = x. find('dogs_breeding_name').text();
var profileName = x.find('profile').text();
$("#breedingNameHolder").empty();
$("#profileHolder").empty();
$("#breedingNameHolder").append(dogsBreedingName);
$("#profileHolder").append(profileName);
});
}
</script>
所以......
Pg1.html拇指但鏈接」從litters.xml正確地傳遞狗的名字Pg2.html。
PG2。 html the girls.xml加載正確
Pg2.xml能夠加載默認狗從girls.xml到配置文件
Pg2.html if語句能夠從Pg1.html
Pg2.html else語句能夠讀取默認狗看狗的名字來自girls.xml。然後它調用loadClickedContent函數並將默認狗加載到配置文件中。
我想我的問題可能是當我從if語句調用loadClickedContent函數時,它不會加載新的內容。它有可能是不正確的格式?我曾嘗試將.html()和.text()放在最後,但它們不起作用。
感謝您的快速回復。我試過你的解決方案,但它給了我這個錯誤信息。 「SyntaxError:Unexpected token'{'。Expected'}'to end a object literal。」 – Sylviamc