Jquery 替换为不';我第二次不工作了

Jquery 替换为不';我第二次不工作了,jquery,replacewith,Jquery,Replacewith,我需要单击列表项,将div中的文本替换为xml文件中节点的文本 我单击列表项并将结果存储在变量中。然后加载xml,找到所需节点的标题,并为结果生成一个变量。然后我运行一个if语句,如果两个变量相等,则将xml放入div中 我第一次单击列表项时,它就起作用了。列表中的正确项与xml中的正确节点匹配,并且正确的文本放置在div中 但是,当我单击另一个列表项时,文本不会被替换。一个警报显示,第二次单击获得了正确的信息,但最终没有替换div内容 此处演示: 代码如下: <body> <

我需要单击列表项,将div中的文本替换为xml文件中节点的文本

我单击列表项并将结果存储在变量中。然后加载xml,找到所需节点的标题,并为结果生成一个变量。然后我运行一个if语句,如果两个变量相等,则将xml放入div中

我第一次单击列表项时,它就起作用了。列表中的正确项与xml中的正确节点匹配,并且正确的文本放置在div中

但是,当我单击另一个列表项时,文本不会被替换。一个警报显示,第二次单击获得了正确的信息,但最终没有替换div内容

此处演示:

代码如下:

<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>

    纽约 断开 海上杰克
$(文档).ready(函数(){ $(“#gallery_id li”)。在('click',函数(e){ var htmlTitle=(this.id); $.ajax({ 键入:“获取”, url:“/mwebphoto/xml/albums.xml”, 数据类型:“xml”, 成功:函数(xml){ $(xml).find('photoAlbum').each(函数(){ var xmlAlbum=$(此); var xmlttitle=$(this.find('title').text(); var xmlEmbedCode=$(this.find('embedCode').text(); 警报('这是标题为'+HTMLITLE'的html); 警报('这是xml标题'+xmlTitle); if(xmlttitle=htmlTitle) 警报(“这是匹配的xml标题”+xmlTitle); $(“#幻灯片”)。替换为(xmlTitle); }); } }); }); });

谢谢你的帮助。我不是随便问的。我花了很多时间在这上面,并且用我能想到的每一种方法研究它。我想我遗漏了一些非常简单的东西,但就是找不到

第一次执行后,
$(“#幻灯片”)
不再存在,因为您要用XML中的id替换整个div

您需要的是:

或者,如果您计划添加html:

$("#slideshow").html(xmlTitle);

我认为这是你的问题:

if(xmlttitle=htmlTitle)

试着把它改成

if(xmlttitle==htmlTitle)


另外,将
replacetwith
替换为
html
text
也是个好主意。

xmlTitle是否包含id为slideshow的元素?如果没有,那就是为什么它第二次不起作用#幻灯片放映不存在。很可能您真正需要的是.html,而不是.if(xmlttitle=htmlTitle)看起来不正确。你的意思是如果(xmlttitle==htmlTitle)?
$("#slideshow").html(xmlTitle);