我需要点击一个列表项来替换div中的文本和xml文件中节点的文本。replaceWith第二次不工作
我点击一个列表项并将结果存储在一个变量中。然后加载xml,找到我需要的节点的标题,并对结果进行变量。然后我运行一个if语句,如果两个变量相等,则将xml放入div中。
我第一次点击一个列表项时,这是有效的。列表中正确的项目与xml中的正确节点相匹配,正确的文本放置在div中。
但是,当我然后点击不同的列表项时,文本不会被替换。警报显示第二次点击获得了正确的信息,但最终,div内容未被替换。
演示在这里:http://mwebphoto.com/mwebphoto/html/3rdJqueryPage.html
代码在这里:
<body>
<div class="slideshowContainer">
<div id="slideshow"></div>
</div>
<ul id="gallery_id">
<li id="newYork">New York</li>
<li id="disconnection">Disconnexion</li>
<li id="jackAtSea">Jack at Sea</li>
</ul>
<script>
$(document).ready(function(){
$("#gallery_id li").on('click', function(e) {
var htmlTitle = (this.id);
$.ajax({
type: "GET",
url: "/mwebphoto/xml/albums.xml",
dataType: "xml",
success: function(xml) {
$(xml).find('photoAlbum').each(function(){
var xmlAlbum= $(this);
var xmlTitle = $(this).find('title').text();
var xmlEmbedCode = $(this).find('embedCode').text();
alert ('this is html titled ' + htmlTitle);
alert ('this is xml titled ' + xmlTitle);
if(xmlTitle=htmlTitle)
alert ('this is matched xml title' + xmlTitle);
$("#slideshow").replaceWith(xmlTitle);
});
}
});
});
});
</script>
</body>
帮助表示赞赏。我不会轻易问。我花了很多时间在这方面进行研究,并以我能想到的方式进行研究。图我错过了很简单的东西,但找不到它。
does xmlTitle包含一个幻灯片ID的元素?如果没有,那么这就是为什么它不能第二次工作。 #slideshow不存在。很可能你真正需要的是.html而不是replaceWith。 –
if(xmlTitle = htmlTitle)看起来不正确。你的意思是if(xmlTitle == htmlTitle)? –