新闻中心
J*aScript动态列表项:将删除按钮置于左侧

本文档旨在指导开发者在使用J*aScript动态生成列表项时,如何将删除按钮放置在列表项的左侧。通过调整DOM元素的创建和添加顺序,实现自定义样式的列表项,并提供完整的示例代码和CSS样式,帮助你轻松掌握列表项的布局控制。
在J*aScript中动态创建列表项(
实现方法
核心思路是在创建
示例代码
以下代码展示了如何修改原有的createListElement函数,将删除按钮放置在列表项的左侧:
function createListElement() {
// 创建新的 li 元素
var li = document.createElement("li");
// 创建删除按钮
var newButton = document.createElement("button");
newButton.innerHTML = "X";
// 先将按钮添加到 li 元素
li.appendChild(newButton);
// 然后添加文本节点
li.appendChild(document.createTextNode(input.value));
input.value = "";
li.addEventListener("click", function() {
li.classList.toggle("done");
});
newButton.addEventListener("click", function() {
ul.removeChild(li);
});
// 将构造好的 li 元素添加到 ul 元素
ul.appendChild(li);
}在上面的代码中,关键的改变在于:
- 创建了 newButton 按钮元素。
- 使用 li.appendChild(newButton) 将按钮添加为 li 元素的第一个子元素。
- 使用 li.appendChild(document.createTextNode(input.value)) 将文本节点添加到 li 元素中。由于按钮已经添加,文本节点将紧随其后,显示在按钮的右侧。
完整代码示例
察言观数AskTable
企业级AI数据表格智能体平台
78
查看详情
var button = document.getElementById("enter")
var input = document.getElementById("user");
var ul = document.querySelector("ul");
var li = document.querySelectorAll("li");
var clearButton = document.getElementsByClassName("clearButton");
function listItems() {
return input.value.length
}
function createListElement() {
// 创建新的 li 元素
var li = document.createElement("li");
// 创建删除按钮
var newButton = document.createElement("button");
newButton.innerHTML = "X";
// 先将按钮添加到 li 元素
li.appendChild(newButton);
// 然后添加文本节点
li.appendChild(document.createTextNode(input.value));
input.value = "";
li.addEventListener("click", function() {
li.classList.toggle("done");
});
newButton.addEventListener("click", function() {
ul.removeChild(li);
});
// 将构造好的 li 元素添加到 ul 元素
ul.appendChild(li);
}
function addItemAfterEnter() {
if (listItems() > 0) {
createListElement();
}
}
function addItemAfterKeypress(event) {
if (listItems() > 0 && event.keyCode === 13) {
createListElement();
}
}
button.addEventListener("click", addItemAfterEnter);
input.addEventListener("keypress", addItemAfterKeypress)
for (var i = 0; i < li.length; i++) {
li[i].addEventListener("click", function() {
this.classList.toggle("done");
})
}
for (var i = 0; i < clearButton.length; i++) {
clearButton[i].addEventListener("click", function() {
this.parentNode.remove();
})
}CSS 样式 (可选)
以下是一些可选的CSS样式,可以用来美化列表和按钮:
ul {
list-style-type: none;
padding: 0;
width: 15rem;
}
li button {
color: red;
margin-right: .5rem;
border-radius: 10px;
border: none;
}
/* 额外的样式 */
li:hover, li button:hover {
cursor: pointer;
}
.done {
text-decoration: line-through;
}HTML 结构
<h1>J*ascript event listener</h1> <input id="user" type="text" placeholder="enter item here"> <button id="enter">Enter</button> <p id="test"></p> <ul> <li class="red blue" random="26"><button class="clearButton">X</button>lettuce</li> <li><button class="clearButton">X</button>apples</li> <li><button class="clearButton">X</button>oranges</li> <li><button class="clearButton">X</button>fruits</li> <li><button class="clearButton">X</button>candy</li> </ul>
注意事项
- DOM 操作性能: 频繁的 DOM 操作可能会影响性能,特别是在处理大量列表项时。可以考虑使用文档片段 (DocumentFragment) 来批量添加元素,减少 DOM 操作次数。
- 事件委托: 对于动态添加的元素,建议使用事件委托,将事件监听器绑定到父元素上,而不是每个子元素。这样可以避免为每个新元素都绑定事件监听器,提高性能。
总结
通过简单地调整 J*aScript 代码中 DOM 元素的创建和添加顺序,就可以轻松地控制删除按钮在列表项中的位置。理解 DOM 结构和元素添加顺序是实现自定义列表项样
式的关键。 同时,注意优化 DOM 操作和事件处理,以提高应用程序的性能。
以上就是J*aScript动态列表项:将删除按钮置于左侧的详细内容,更多请关注其它相关文章!
# 可选
# 杭州抖音seo机构排名
# 临沂seo推广费用
# 潍坊怎样seo优化
# 盐城做网站推广选哪家
# 扬州专业的网站优化价格
# 诸暨网站优化价格
# 网购网站建设的步骤
# 甜文推广视频在线观看网站
# 网站推广没有转化
# 建设招聘网站
# 文档
# 就会
# 显示效果
# 绑定
# css
# 自定义
# 单选框
# 是在
# 先将
# 表单
# red
# css样式
# apple
# ssl
# app
# node
# html
# java
# javascript
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
精准捕获:如何在页面中监听除特定元素外的所有点击事件
c++如何使用std::memory_order控制原子操作顺序_c++ C++11内存模型详解
J*aScript中正确使用querySelectorAll与复杂CSS选择器
漫蛙2(台版)官方入口地址 漫蛙2(台版)正版漫画网页端
php源码怎么看淘宝客系统_看php源码淘宝客系统技巧
PHP中SSG-WSG API的AES加密实践:正确使用初始化向量
c++ dfs和bfs代码 c++深度广度优先搜索算法
微信网页版登录教程_微信网页版登录入口在哪
想当下一个《2077》?《心之眼》Steam评价升至"多半好评"
Composer的 "check-platform-reqs" 命令有什么用_在部署前检查生产环境是否满足Composer依赖需求
c++ 命名空间怎么用 c++ namespace使用指南
Golang如何安装Swagger工具_GoSwagger文档生成环境
品牌机怎么重装系统 联想/戴尔/惠普笔记本恢复出厂系统教程
J*a里如何实现订单支付与库存同步功能_支付库存同步项目开发方法说明
AO3中文官网链接_AO3网页版稳定镜像站
免费抖音短视频入口_抖音网页版短视频免费通道
Descript怎样用AI剪辑自动去噪_Descript用AI剪辑自动去噪【自动降噪】
拼多多视频播放卡顿如何处理 拼多多视频播放优化技巧
css滚动动画效果怎么实现_使用Animate.css滚动触发动画类
qq游戏手机版下载安装_qq游戏移动端入口
c++中的const_cast和reinterpret_cast怎么用_c++四种类型转换
荣耀Play7T运行卡顿解决_荣耀Play7T性能优化
KFC早餐时段怎么领特惠代码_KFC早餐订餐优惠代码获取与使用说明
将HTML动态表格多行数据保存到Google Sheet的教程
漫画星球免费下拉式入口 漫画星球免费漫画在线阅读网站
如何将HTML表格多行数据保存到Google Sheets
Win11怎么修改默认浏览器_Windows 11设置Chrome为默认
excel怎么制作工资条 excel快速生成工资条的方法
PDF怎么合并PDF并保持格式_PDF合并文件保持排版教程
如何有效阻止外部脚本意外修改内联样式的高度属性
PySpark中高效提取字符串右侧可变长度数字:使用regexp_extract
处理嵌套交互式控件:前端可访问性指南
J*a递归快速排序中静态变量导致数据累积问题的解决方案
如何使用J*aScript精确选择并批量修改特定父元素下子链接的样式
CSS自定义字体样式被系统字体替换怎么办_font-face方式指定font-display控制渲染策略
Win10如何开启蓝牙功能_Windows10找不到蓝牙开关解决方法
React中useState与局部变量:理解组件状态管理与渲染机制
html网页设计源代码怎么运行_运行html网页设计源代码步骤【指南】
Python Socket多播通信中指定源IP地址的实践指南
夸克浏览器桌面版同步不了书签怎么处理 夸克浏览器跨设备同步异常解决方案
Win11输入法不见了怎么办_Windows11恢复语言栏显示方法
QQ邮箱登录官网首页 腾讯QQ邮箱网页入口
Sublime Text怎么设置垂直标尺_Sublime配置Rulers规范代码长度
Node.js CSV 数据处理:基于字段值条件过滤整条记录的策略
163邮箱注册官网 免费申请163个人邮箱
多闪网页版在线观看免费入口_多闪官网访问入口
sublime怎么覆盖插件的默认快捷键_sublime快捷键优先级与设置
三星GalaxyZFold5怎样在相册制作折叠屏分镜_iPhone三星GalaxyZFold5相册制作折叠屏分镜【创意编辑】
《噬血代码2》新预告片发布 展示游戏剧情
Win11怎么查看显卡显存 Win11显示适配器属性及专用视频内存查询


2025-10-17
浏览次数:次
返回列表