我有一个检索一些结果的 JQ-AJAX 函数,然后在成功时它应该创建一个列表并将其添加到一个元素中。我根据结果创建了一个 UL - 这是成功函数:
success: function (info) {
var shipActionsUL = '<ul class="shipActionsList>';
$(info).find('string').each(function (index) {
var action = $(this).text();
shipActionsUL += '<li id="'+action+'">'+action+'</li>';
});
shipActionsUL += '</ul>';
$('#hello').text(shipActionsUL);
}
现在,当#hello 的文本发生变化时,结果是:
<ul class="shipActionsList>
<li id="aaMove">aaMove</li>
<li id="aaAttack">aaAttack</li>
</ul>
这就是我希望 UL 在 DOM 中的样子。然而,这是文字。当我尝试使用 $('#hello').html(shipActionsUL); 实际列出列表时 我得到一个格式奇怪的 UL - 它的第一个列表项缺少它的项目符号,当我检查列表时它看起来像这样:
<ul class="shipActionsList>
<li id=" aamove">aaMove</li>
<li id="aaAttack">aaAttack</li>
</ul>
注意 aamove 的 id - 小写和它前面的额外空格。不管列表中的列表项是什么,它总是第一个被弄乱的元素。
另外,如果我要从只有
shipActionsUL += '<li>'+action+'</li>';
$('#hello').html(shipActionsUL); 上的#hello 中根本不会出现列表。
XML 响应 - 来自成功的信息 - 将采用这种格式(现在只有 aaAttack 会被搞砸):
<?xml version="1.0" encoding="utf-8"?>
<ShipActions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
<shipID>162</shipID>
<Actions>
<string>aaAttack</string>
<string>aaMove</string>
<string>aaSttack</string>
</Actions>
</ShipActions>