当前位置:首页 > web实践 > 正文内容

动态数据管理

唐朝2年前 (2024-03-31)web实践1212

一个可定制的动态文本输入列表管理功能,主要用于Web应用程序中,允许用户按需添加和操作多个文本输入项。通过此功能,用户可以根据实际需求灵活地增加、删除和重新排序多个文本输入项,极大地提高了交互性和定制性。

蜜语时刻机.png

1、构造HTML结构

使用!DOCTYPE html声明文档类型,并通过html:5的快捷代码创建HTML5的基础结,然后设置语言和标题。

<!DOCTYPE html>
<html lang="zh-Hans">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>动态数据</title>
</head>
<body>
    <div class="main">
    <a href="javascript:addinput('#texts','text-item-tpl');" class="btn btn-default">添加步骤</a>
    <ul id="texts">
        //列表
    </ul>
    </div>
</body>
</html>

2、定义与复用模板

<script type="text/html" id="text-item-tpl">
<li id="save-text{id}">
    <input class="form-control" type="text" name="a1[]" value="" title="内容">
    <a class="btn btn-danger" href="javascript:removeImageById('{id}');">删除</a>
    <a class="btn btn-success" href="javascript:moveImageDownById('{id}');">下移</a>
</li>
</script>

3、添加模块函数

// 定义一个名为addinput的函数,接收二个参数:容器的选择器字符串和模板元素的ID
function addinput(container_selector, item_tpl_wrapper_id) {
    // 获取ID为item_tpl_wrapper_id的DOM元素
    let tplWrapper = document.getElementById(item_tpl_wrapper_id);
    // 获取模板元素的HTML内容,并将其赋值给变量tpl
    let tpl = tplWrapper.innerHTML;
    // 使用正则表达式将模板字符串中的{id}替换为当前时间戳(毫秒级)
    tpl = tpl.replace(/\{id\}/g, Date.now());
    
    // 创建一个新的div元素
    let newElement = document.createElement('div');
    // 将处理过的模板字符串赋值给新创建的div元素的innerHTML属性
    newElement.innerHTML = tpl;
    // 使用container_selector查询并获取目标容器元素
    let targetElement = document.querySelector(container_selector);
    // 遍历新创建的div元素的所有子节点,并将它们逐个添加到目标容器元素中
    while (newElement.firstChild) {
        // 获取div元素的第一个子节点
        let child = newElement.firstChild;
        // 将子节点添加到目标容器元素中
        targetElement.appendChild(child);
    }
}

4、删除模块函数

function removeImageById(id) {
    // 使用querySelector查找id为'save-text'后接传入id参数的元素
    let element = document.querySelector('#save-text' + id);
    // 如果找到对应的元素
    if (element) {
        // 从其父节点中删除该元素
        element.parentNode.removeChild(element);
    }
}

5、下移模块函数

function moveImageDownById(id) {
    // 获取id为'save-text'后接传入id参数的当前元素
    let currentElement = document.querySelector('#save-text' + id);
    // 获取当前元素的下一个兄弟元素
    let nextElement = currentElement.nextElementSibling;
    // 如果存在下一个兄弟元素
    if (nextElement) {
        // 将下一个兄弟元素插入到当前元素之前,实现当前元素的下移
        currentElement.parentNode.insertBefore(nextElement, currentElement);
    }
}

6、美化

.main a {
    color: #1d4c7d;
    font-size: 14px;
    text-decoration: none;
}
.main ul {
    list-style: none;
    padding: 0;
    margin-top: 15px;
}

#texts li {
    margin-bottom: 10px;
}

#texts input {
    padding: 0.25em 0.25em 0.25em 0.25em;
    border: 1px solid #ccc;
    background-position: bottom;
    background: #fff;
    font-size: 1em;
    width: 200px;
}

7、完

效果演示

点击查看效果演示

    文档如有描述不清楚、错误或者过时的地方,欢迎留言指出。

    文档、教程内容会不定时更新,转载请标明原帖链接,以免让过时的教程流入网络。

    分享给朋友:

    “动态数据管理” 的相关文章

    简易首页制作

    简易首页制作

    简易首页的组成由头部文件、导航、内容模块和底部四块组成。1、初始化HTML基础框架使用!DOCTYPE html声明文档类型,并通过html:5的快捷代码创建HTML5的基础结,并设置语言和标题。<!DOCTYPE html> <html lang="...

    消失的留言

    知识点总结:1、掌握延时函数的使用 2、掌握JavaScript控制css属性的方法。功能介绍:每隔一秒显示一句话。操作步骤1、初始化HTML基础框架使用!DOCTYPE html声明文档类型,并通过html:5的快捷代码创建HTML5的基础结,然后设置语言和标题。<!DOCTYPE ...

    萌系返回顶部

    萌系返回顶部

            一款创新且富有情感化交互设计的小功能,专为提升用户体验而精心打造。该功能会在用户浏览网页内容并向下滚动至预设阈值高度时,在网页右下角自动显现一个生动可爱的小人图标。这一设计旨在吸引用户的注意力,并提供返回...

    今天吃什么

    今天吃什么

    "今天吃什么"是一款极具趣味性的在线餐饮决策助手,旨在为面对琳琅满目美食选项而犹豫不决的用户,提供轻松愉快的随机推荐体验。该产品以简洁明快的网页界面呈现,只需轻点鼠标,即可在瞬间为用户揭晓今日餐单,让日常饮食选择变得简单又充满惊喜。所运用的知识点1、使用document.quer...

    团队介绍模块制作

    团队介绍模块制作

    以结构化、直观的方式展示团队成员的基本信息,包括头像、姓名、职务及简要工作经历等。后续可以通过设置链接,用户可以方便地访问成员的详细资料,增强了页面的信息传递效率和交互性。同时,模块设计兼顾了响应式布局,确保在各类设备上的良好用户体验。一、构造HTML结构使用!DOCTYPE html声明文档类型,...

    通过《通义灵码》生成想要的功能

    通过《通义灵码》生成想要的功能

    通义灵码(TONGYI Lingma)是一款强大的智能编码助手,能够帮助开发者在编写代码时提高效率和质量。要使用它来生成特定功能。我们来实现下下面的功能。功能:使用HTML5拖放API实现购物车拖放效果,如图所示:一、确认问题通义灵码目前是不支持发送图片的,我们需要把功能上没写,但图片上有的功能一并...