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

动态数据管理

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

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

效果演示

点击查看效果演示

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

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

    分享给朋友:

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

    h5网站添加统计代码

    1、进入百度统计官方网站 https://tongji.baidu.com/2、登录账户3、在控制面板界面,点击《使用配置》4、在《使用配置》左侧导航的《网站列表》界面,点击《添加站点》5、输入以下信息网站域名: 格式 b9b31053.idc.wod.xyz网站首页:格式&nb...

    zblog搭建微信小程序

    zblog搭建微信小程序

    本教程适用于《zblog微信小程序1.1.8》版本。zblog微信小程序是基于zblog后端进行搭建的小程序,依赖zblog微信小程序插件,使用前请在应用商店下载安装zblog微信小程序插件。准备工作:1、确保自己的域名有正常开启https;2、自己的zblog网站后台有正常安装下载《zblog微信...

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

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

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

    zblog的伪静态怎么开启

    zblog的伪静态怎么开启

    伪静态可以自定义URL,简洁明了的URL结构让用户更容易理解和记忆,提升了用户的浏览体验。本案例采用的是nginx环境。操作步骤如下:1、在应用中心找到《静态管理中心》插件并开启开启;2、点击《静态管理中心》的管理配置按钮;3、在《配置界面》的静态化选项-使用伪静态前必须确认主机是否支持处,选择伪静...

    通过通义灵码制作一个简单的首页

    通过阿里的人工智能工具通义灵码的AI程序员制作一个简单的首页,包含顶部,导航,中间内容和底部4部分。具体要求顶部:HTML+CSS简易首页制作导航:首页、学习资料、作业演示、关于、联系作业演示设置二级下拉演示1、演示2、演示3中间内容:欢迎来到我们的网站这里是您的网站标语或者简介,突出展示关键信息。...

    zblog开启开发者模式

    常规开启调试模式是在后台设置中进行,在后台设置的全局设置里打开“调试模式”并保存即可。步骤如下:1、进入网站后台,点击后台首页左侧导航的“应用中心”按钮,进入界面后,点击右上的“配置”按钮,然后开启“启用开发者模式”。2、点击后台首页右上的“网站配置”按钮,点击“全局设置”,开启“调试模式”。如果网...