将对象列表打印为 vanilla javascript 中的链接

Posted

技术标签:

【中文标题】将对象列表打印为 vanilla javascript 中的链接【英文标题】:printing list of objects as links in vanilla javascript 【发布时间】:2017-12-12 19:04:02 【问题描述】:

我正在尝试使用 vanilla javascript 打印对象列表。在我的循环中,只有最后一项被打印出来。我该如何解决?我尝试将每个 li 附加到一个变量(节点),然后将其附加到我的 ul id,但这不起作用。这是小提琴:

https://codepen.io/anon/pen/LLgZzw?editors=1011

html

<ul id="list"></ul>

JS

let list = document.getElementById('list');

let obj = 
  "codepen": 'www.codepen.io',
  "jsfiddle": 'www.jsfiddle.com',
  "jsbin": 'www.jsbin.com'
;
function printList(obj)
  for(let key in obj)
    console.log(key);
    list.innerHTML = `<li><a href= $obj[key]>$key</a></li>`;
  
  //list.appendChild(li);

printList(obj);

【问题讨论】:

你需要在这里连接你的字符串list.innerHTML += $key ;使用@ 987654326@ 感谢@Mr.Alien! 【参考方案1】:

您需要将值连接到 innerHTML。在您的情况下,它始终是将在 innerHTML 中设置的迭代的最后一个值

let list = document.getElementById('list');

let obj = 
  "codepen": 'www.codepen.io',
  "jsfiddle": 'www.jsfiddle.com',
  "jsbin": 'www.jsbin.com'
;

function printList(obj) 
  for (let key in obj) 
    console.log(key);
    //Changed here. added + before ==.It will concat the current value with previous value
    list.innerHTML += `<li><a href= $obj[key]>$key</a></li>`;
  
  //list.appendChild(li);

printList(obj);
&lt;ul id="list"&gt;&lt;/ul&gt;

【讨论】:

正是我需要的!非常感谢@brk

以上是关于将对象列表打印为 vanilla javascript 中的链接的主要内容,如果未能解决你的问题,请参考以下文章

没有 jquery 的 Django CSRF 丢失或不正确的 Ajax POST (Vanilla JavaScript)

当弹出窗口关闭时,我将如何引发事件(jQuery 或 vanilla Javascript)?

尝试将变量保存为自定义解析对象列表(UserRecipe)并将它们打印到 xcode 控制台

将动态数据从数组对象插入到引导模式中 - vanilla javascript

根据包含的数组内容过滤对象数组。 Vanilla JS,lodash,其他一些与反应相关的技术?

在 jQuery 或 vanilla JavaScript 中过滤 JSON 数据