首页 > 其他分享 >html+js实现选中左边的数据到右边

html+js实现选中左边的数据到右边

时间:2024-07-12 14:41:49浏览次数:8  
标签:itemId selectedItem js item html 选中 var document quantity

效果

后台要开发个功能,给游戏内的用户赠送道具,先把道具列表展示,然后选择要增送的道具,可以加上道具图片之类的,美化

index.html 页面没有美化,只是实现了效果。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bootstrap 美化的数据列表示例</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>

<div class="container">
  <div class="row">
    <div class="col-md-6">
      <!-- 左边列表项 -->
      <ul class="list-group" id="list-container">
        <li class="list-group-item" data-id="1">数据1</li>
        <li class="list-group-item" data-id="2">数据2</li>
        <li class="list-group-item" data-id="3">数据3</li>
      </ul>
    </div>
    <div class="col-md-6">
      <!-- 右边选中的数据和数量 -->
      <div class="input-group mb-3">
      </div>
      <ul class="list-group" id="selected-list">
        <!-- 右边选中的数据和数量将显示在这里 -->
      </ul>
    </div>
  </div>
</div>

<!-- 引入 Bootstrap 的 JavaScript 组件 -->
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script> 
<script src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js"></script> 
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script> 

<script>
document.addEventListener('DOMContentLoaded', function() {
  var listContainer = document.getElementById('list-container');
  var addButton = document.getElementById('add-button');
  var selectedList = document.getElementById('selected-list');
  var quantityInput = document.getElementById('quantity-input');

  // 监听左边列表项的点击事件
  listContainer.addEventListener('click', function(e) {
    var item = e.target.closest('.list-group-item');
    if (item) {
      var itemId = item.getAttribute('data-id');
      updateRightSide(itemId); // 更新右边的数据
    }
  });

  // 更新或增加右边的数据和数量
  function updateRightSide(itemId) {
    var itemText = '数据' + itemId;
    var selectedItem = selectedList.querySelector('li[data-id="' + itemId + '"]');
    var quantity = 1;

    if (selectedItem) {
      // 如果右边已经有这个数据项,增加数量
      quantity = parseInt(selectedItem.querySelector('.quantity').textContent, 10) + 1;
      selectedItem.querySelector('.quantity').textContent = quantity;
    } else {
      // 如果右边没有这个数据项,创建新的列表项
      selectedItem = document.createElement('li');
      selectedItem.className = 'list-group-item d-flex justify-content-between align-items-center';
      selectedItem.setAttribute('data-id', itemId);
      selectedItem.innerHTML = '<span>' + itemText + '</span>' +
        '<span class="quantity">' + quantity + '</span>' +
        '<button type="button" class="close" aria-label="Remove"><span aria-hidden="true">&times;</span></button>';
      selectedItem.querySelector('.close').addEventListener('click', function() {
        // 删除右边列表中的项
        selectedList.removeChild(selectedItem);
      });
      selectedList.appendChild(selectedItem);
    }
  }

  // 监听添加按钮的点击事件
  addButton.addEventListener('click', function() {
    // 这里可以根据需要添加逻辑,比如更新数据库或执行其他操作
    // ...
  });
});
</script>

</body>
</html>

标签:itemId,selectedItem,js,item,html,选中,var,document,quantity
From: https://www.cnblogs.com/qcy-blog/p/18298327

相关文章

  • 课程设计——基于JSP + Servlet的学生信息管理系统
    基于JSP+Servlet的学生信息管理系统该项目为课程设计项目1.总体功能描述本系统利用JavaWeb技术实现了学生信息管理系统,具有简单的学生信息管理功能。实现了以下功能模块:院系信息管理模块,学生信息管理模块,课程信息管理模块,成绩管理模块并能根据登入用户的权限自动......
  • threejs画布叠加在cesium画布上不显示
    这个问题可能是由于Three.js和Cesium在渲染顺序或者渲染上下文方面存在冲突导致的。Three.js和Cesium都是用于创建3D或2D地图的库,它们各自管理自己的渲染画布(WebGL上下文)。解决方法: 确保Cesium初始化先于Three.js。Cesium需要完全初始化并且渲染其画布之后,Three.js才能在同......
  • js 数组方法 - 查找 - indexOf()、includes()、find()、findIndex()、filter()、lastI
    indexOf()该方法可以返回数组中指定元素的索引,如果不存在,则返回-1。constarr=["apple","banana","orange"];constindex=arr.indexOf("banana");console.log(index);//输出:1constarr2=["aaa","bbb","ccc",9......
  • Linux jq 命令讲解与实战操作(json字符串解析工具)
    Linuxjq命令讲解与实战操作(json字符串解析工具)大数据老司机2023-08-0914:23 一、概述jq 是一个强大的命令行工具,用于处理 JSON 格式的数据。它可以帮助你查询、过滤、修改和处理 JSON 数据,使得在命令行环境下处理 JSON 变得非常方便。GitHub地......
  • element-ui表格中的复选框默认选中状态、禁用状态以及默认选中不可取消状态
    element-ui表格中的复选框默认选中状态、禁用状态以及默认选中不可取消状态_表格中el-checkbox默认显示选择-CSDN博客<el-tableref="multipleTable":data="tableData3"tooltip-effect="dark"style="width:100%"@selection-change="handleS......
  • vue js公共截取URL的key: value方法
    letURL=http://localhost:8080/#/ficu/?taskid=1001-2271023&pageId=146&ssid=74529457205982&channelld=IPCC&userId=xx//取值URLlethref=window.location.href//拿到完整的URLlethash=window.location.hash//取#后面的所有URL//取值方法getUrlPara......
  • 如何用Vue3和Plotly.js创建交互式表格?
    本文由ScriptEcho平台提供技术支持项目地址:传送门Plotly.js动态生成HTML表格应用场景介绍在数据分析和可视化领域,经常需要以表格的形式展示数据。Plotly.js是一款功能强大的JavaScript库,不仅可以创建交互式图表,还可以动态生成HTML表格。代码基本功能介绍本代......
  • 如何用Vue3和Plotly.js绘制交互式瀑布图
    本文由ScriptEcho平台提供技术支持项目地址:传送门使用Plotly.js在Vue中创建瀑布图应用场景瀑布图广泛用于可视化财务报表和展示增量变化,例如利润表、现金流量表和收入分析。它们通过将正值和负值堆叠在垂直轴上,清晰地展示每个阶段的贡献和变化。基本功能本代码演......
  • 如何用Vue3和Plotly.js创建交互式平行坐标图
    本文由ScriptEcho平台提供技术支持项目地址:传送门Vue.js中使用Plotly.js创建平行坐标图应用场景介绍平行坐标图是一种可视化高维数据集的强大技术。它可以帮助我们探索不同维度之间的关系,并识别模式和异常值。在Vue.js应用程序中,我们可以使用Plotly.js库轻松创......
  • 370. 高端个人相册网站 大学生期末大作业 Web前端网页制作 html5+css+js
    目录一、网页概述二、网页文件 三、网页效果四、代码展示1.html2.CSS3.JS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强六、更多推荐欢迎光临仙女的网页世界!这里有Web前端网页制作的各行各业的案例,样式齐全新颖,并持续更新!感谢CSDN,提供了这......