javascript - jQuery - 如何动态添加到列表元素

标签 javascript jquery

这可能已经被问了很多,但我无法让它发挥作用。 正如标题所说,我需要附加 <ul> <li>动态地在一个元素内。 方法addUsers()每次更新 json 时都会调用。

HTML:

<div id="users"></div>

Javascript:

function addUsers() {
    var users = $('#users'); // div element
    users.html(''); // clears the div everytime it come inside addUsers() method
    users.append('<ul>');
    for (var i = 0; i < json.users.length; i++) {       
        users.append('<li><a href="#"><span class="user-list">'+json.users[i]+'</span></a></li>');
    }
}

异常输出:

<div id="users">
<ul>
    <li><a href="#"><span class="user-list">User1</span></a></li>
    <li><a href="#"><span class="user-list">User2</span></a></li>
    <li><a href="#"><span class="user-list">User3</span></a></li>
</ul>

实际输出:

<div id="users">
    <ul></ul> //UL is ending here
        <li><a href="#"><span class="user-list">User1</span></a></li>
        <li><a href="#"><span class="user-list">User2</span></a></li>
        <li><a href="#"><span class="user-list">User3</span></a></li>
</div>

我一定做错了什么。感谢任何指点。谢谢!

最佳答案

您实际上是将 li 元素附加到 Div 元素。但在您的上下文中, ul 存在于该 Div 元素内部。所以你必须使用 .find() 函数来选择它。

尝试,

var xUl = users.find('ul');

for (var i = 0; i < json.users.length; i++) {       
        xUl.append('<li><a href="#"><span class="user-list">'+json.users[i]+'</span></a></li>');
    }

关于javascript - jQuery - 如何动态添加到列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21722228/

相关文章:

javascript - 如何使用 jquery.cookie 仅为主页设置 cookie,而不为其他页面设置 cookie

javascript - Highchart 隐藏默认按钮

javascript - 提交后重置表单

Javascript onload 函数替代方案

javascript - 简单检查全部(对于复选框)不起作用

javascript - FormData 在数组中追加项目

javascript - Cypress - 测试提交无效输入时是否存在特定于浏览器的警报

javascript - jQuery:防止多次点击?

javascript - 如何使用 queryselector 验证两个输入字段是否已填写?

javascript - 从 API 调用 JSON 元素并将结果作为字符串返回