javascript - 我想显示发布内容的id,目前是用变量表示的,所以我想用数组索引来显示
问题描述
我是 javascript 的初学者。现在,我创建了一个列表应用程序。要显示的内容 id "id + element"。我想使用数组索引显示它,但现在使用变量。
预期的
1:第一个值 2:第二个值 3:第三个值 ...
这是代码。
html
<body>
<h1>todo list</h1>
<div>
<input type="text" id="item">
<button type="button" id='click-function'>Add</button>
</div>
<ul id="todoList"></ul>
<script src="index.js"></script>
</body>
js
const myfunc = document.getElementById('click-function');
let i = 0;
myfunc.addEventListener('click',function(){
let todoItems = [];
let todoItem = document.getElementById('item').value;
todoItems.push(todoItem);
todoItems.forEach((element,index,array) => {
let li = document.createElement('li');
li.textContent = i + element;
document.getElementById('todoList').appendChild(li);
i++;
})
})
解决方案
更新了您的代码片段,请参阅下面的工作演示:
const myfunc = document.getElementById('click-function');
let i = 0;
myfunc.addEventListener('click',function(){
let todoItems = [];
let todoInput = document.getElementById('item');
let todoItem= todoInput.value;
todoInput.value='';
todoItems.push(todoItem);
todoItems.forEach((element,index,array) => {
let li = document.createElement('li');
li.textContent = (i+1)+' ' + element;
document.getElementById('todoList').appendChild(li);
i++;
});
})
<body>
<h1>todo list</h1>
<div>
<input type="text" id="item">
<button type="button" id='click-function'>Add</button>
</div>
<ul id="todoList"></ul>
</body>
解释:
Js Array 的起始索引为 0,因此每次要将其显示给用户时,都需要将当前索引增加 1。
建议:
我建议您不要通过代码打印索引,而是使用<ol>
(有序列表)代替<ul>
(无序列表),这将为您完成工作。
const myfunc = document.getElementById('click-function');
let i = 0;
myfunc.addEventListener('click',function(){
let todoItems = [];
let todoInput = document.getElementById('item');
let todoItem= todoInput.value;
todoInput.value='';
todoItems.push(todoItem);
todoItems.forEach((element,index,array) => {
let li = document.createElement('li');
li.textContent = element;
document.getElementById('todoList').appendChild(li);
i++;
});
})
<body>
<h1>todo list</h1>
<div>
<input type="text" id="item">
<button type="button" id='click-function'>Add</button>
</div>
<ol id="todoList"></ol>
</body>
推荐阅读
- javascript - Google 表格 - 尝试将脚本分配给图像以创建按钮
- openedge - Is there any way to enter the value manually in drop down list?
- angular - 你应该总是延迟加载 Angular 模块吗?
- git - Git忽略不应忽略的文件夹
- regex - 为什么使用 Katalon/Cucumber 时带括号的步骤在 Groovy/Java 代码中不匹配?
- django - django date picker input in template
- google-sheets - Google sheets query select when certain values
- html - 使用 CSS 网格或 Flexbox 在垂直列中排序项目?
- amazon-web-services - 一个网站要连接多个 EC2 实例?
- javascript - Angular Material svg 图标为所有实体显示相同的图标