Javascript将xml数据添加到UL列表中

时间:2018-04-23 13:34:30

标签: javascript jquery

在查询中,我在响应变量上有一些xml数据。

数据如下所示:

<list type="cat">
  <instance id="4" name="somename" />
  <instance id="7" name="someo_there_name" />
</list>

我还准备了UL,我需要一个id和名称附加到ul

的列表
<ul id="thelist"></ul>

我该怎么做?

2 个答案:

答案 0 :(得分:1)

要实现此目的,您可以使用map()遍历instance个节点,然后将包含li元素的HTML添加到结果数组中,然后将其全部附加到ul 1}}。试试这个:

var xml = '<list type="cat"><instance id="4" name="somename" /><instance id="7" name="someo_there_name" /></list>';

var html = $(xml).find('instance').map(function(){
  return `<li id=${$(this).attr('id')}">${$(this).attr('name')}</li>`;
}).get();
$('#thelist').append(html);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="thelist"></ul>

答案 1 :(得分:0)

您可以从该XML数据创建一个JQuery对象,然后循环到每个instance元素以创建一个包含<li>的列表,然后将其作为HTML添加到<ul> { {1}}。

id="thelist"
var xmlData = `<list type="cat">
  <instance id="4" name="somename" />
  <instance id="7" name="someo_there_name" />
</list>`;

var $xmlData = $(xmlData);
var nHTML = '';
$xmlData.find('instance').each(function(){
  nHTML+='<li id="'+$(this).attr('id')+'">'+$(this).attr('name')+'</li>';
});

$('#thelist').html(nHTML);

要进一步验证,您可以在<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul id="thelist"></ul>元素上使用浏览器的检查元素,并查看每个<li>

id