javascript - 如何重复xml元素?
问题描述
我已经创建了从 xml 文件加载元素的代码。但它不会在 xml 文件中加载重复的值。它只加载一个元素,其他元素不加载。特此附上一个例子。
$(document).ready(function(){
$.ajax({
type:"GET",
url:"data.xml",
dataType:"xml",
success:showdata
});
});
function showdata(xml){
xml = $(xml).children();
$(xml).children().each(function () {
let tag = $(this).prop("tagName");
let to = $(this).find("to").text();
let from =$(this).find("from").text();
let heading = $(this).find("heading").text();
let list = $(this).find("list").text();
let body =$(this).find("body").text();
let html = `<div class="col-md-4" id="random">
<div class="thumbnail">
<a href="#${tag}"><p>${to}</p>
<p>${from}</p>
<p>${heading}</p>
<p>${body}</p></a>
</div>
</div>`;
let popup = `<div id="${tag}" class="overlay">
<div class="popup">
<h6>${heading}</h6>
<a class="close" href="#">×</a>
<ul><li>${list}</li></ul>
</div>
</div>`;
$("#xmldata").append(html);
$("#popup").append(popup);
});
}
解决方案
我在您的代码中看到您正在使用锚标记,它始终指向#note。我刚刚附加了索引号,现在它很完美。
请更改此行
$(xml).children().each(function (index,item) {
let tag = $(this).prop("tagName")+index;
我还更新了未绑定为 li 的列表。现在检查它是否适合您
完整代码如下
function showdata(xml){
xml = $(xml).children();
$(xml).children().each(function (index,item) {
let tag = $(this).prop("tagName")+index;
let to = $(this).find("to").text();
let from =$(this).find("from").text();
let heading = $(this).find("heading").text();
let list = $(this).find("list");
let body =$(this).find("body").text();
let html = `<div class="col-md-4" id="random">
<div class="thumbnail">
<a href="#${tag}"><p>${to}</p>
<p>${from}</p>
<p>${heading}</p>
<p>${body}</p></a>
</div>
</div>`;
var listStr="";
list.each((index,item)=>{
listStr+="<li>"+item.innerHTML+"</li>"
})
let popup = `<div id="${tag}" class="overlay">
<div class="popup">
<h6>${heading}</h6>
<a class="close" href="#">×</a>
<ul>`+listStr+`</ul>
</div>
</div>`;
$("#xmldata").append(html);
$("#popup").append(popup);
});
}
推荐阅读
- selenium - Selenium IDE saving test in wrong order
- javascript - receive multiple div id from .parentsUntil()
- mongodb - Convert enum value by field
- html - How to change font-size to a SVG?
- assembly - Calling printf of C in MASM assembly
- jquery - 如何在 Laravel 中显示成功和错误消息
- python - 根据关键字在 SQL 数据库中搜索文本记录并创建计算列的最佳方法
- hibernate - 嵌套 ID 类需要命名为关系,即使不是派生标识符?
- azure - 是否有可能在两个 Azure blob 存储之间同步数据
- delphi - 如何为firedac宏赋值并让fastreport.loadfromfile识别它