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