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

动态数据管理

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

一个可定制的动态文本输入列表管理功能,主要用于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、完

效果演示

点击查看效果演示

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

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

    分享给朋友:

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

    萌系返回顶部

    萌系返回顶部

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

    Banner需求提交界面

    Banner需求提交界面

    背景图加表单文本居中1、构造HTML结构使用!DOCTYPE html声明文档类型,并通过html:5的快捷代码创建HTML5的基础结,然后设置语言和标题。<!DOCTYPE html> <html lang="zh-Hans">...

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

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

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

    后台地址与找回密码

    网站默认后台地址:域名/zb_system/login.php如何修改后台地址在应用中心下载并安装插件《后台快捷方式》,即可自定义后台地址。下次访问的时候直接使用自己的自定义地址即可找回密码下载重置文件《https://update.zblogcn.com/tools/nologin.zip》,解压...

    如何在zblog网站引用第三方视频

    如何在zblog网站引用第三方视频

    启用插件后,在文章编辑页面右侧栏中找到“添加 iframe 视频”按钮,点击后弹出对话框,在对话框中粘贴复制好的 iframe 代码,选择要展示的宽高比例、以及是否进行 HTML5 格式化,点击“插入”即可。如果无法预览视频,请到设置中添加对应的 CSP 域名。展示宽高比例是指 iframe 的宽高...