原神4.8版本抽到脚色和重点造就数据表

打印 上一主题 下一主题

主题 530|帖子 530|积分 1605



  1. <!DOCTYPE html>
  2. <html lang="zh-cn">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.     <title>原神4.8版本抽到角色和重点培养数据表</title>
  7. </head>
  8. <style>
  9.     * {
  10.         margin: 0;
  11.         padding: 0;
  12.         box-sizing: border-box;
  13.         body {
  14.             background: #1c3b5c;
  15.         }
  16.         a {
  17.             color: #e6a23c;
  18.         }
  19.     }
  20.     /* 头部样式 */
  21.     header {
  22.         width: 99vw;
  23.         height: 40px;
  24.         display: flex;
  25.         justify-content: space-between;
  26.         align-items: center;
  27.         background-color: #cbcbcb;
  28.         position: fixed;
  29.         /* logo */
  30.         figure.logo {
  31.             width: 262px;
  32.             height: 50px;
  33.             /* 缩小 */
  34.             transform: scale(0.8);
  35.             margin-top: 2px;
  36.             margin-left: -15px;
  37.             border-radius: 50%;
  38.             background: #f30303;
  39.             box-shadow: inset 4px 4px 4px rgba(255, 255, 255, 0.6),
  40.                 inset -4px -4px 5px rgba(0, 0, 0, 0.6);
  41.             z-index: 99;
  42.             figcaption {
  43.                 background: hsl(0, 0%, 0%);
  44.                 background-clip: text;
  45.                 -webkit-background-clip: text;
  46.                 -webkit-text-fill-color: transparent;
  47.                 font-weight: bold;
  48.                 box-shadow: inset 4px 4px 4px rgba(255, 255, 255, 0.6), inset -4px -4px 5px rgba(0, 0, 0, 0.6);
  49.                 letter-spacing: -3px;
  50.                 line-height: 45px;
  51.                 border-radius: 50%;
  52.                 font-size: 40px;
  53.                 width: 152px;
  54.             }
  55.             .my_name1 {
  56.                 text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.726);
  57.                 clip-path: polygon(0% 0%, 100% 0%, 100% 50%, 0% 50%);
  58.                 transform: translate(35%, 0%);
  59.                 -webkit-text-stroke: #fffbfb 1px;
  60.             }
  61.             .my_name2 {
  62.                 text-shadow: 1px 1px 1px hsla(160, 100%, 37%, 0.555);
  63.                 clip-path: polygon(0% 50%, 100% 50%, 100% 100%, 0% 100%);
  64.                 transform: translate(35%, -93%);
  65.                 -webkit-text-stroke: #ffffff 1px;
  66.             }
  67.             img {
  68.                 width: 60px;
  69.                 height: 35px;
  70.                 border-radius: 50%;
  71.                 transition: transform 0.3s ease;
  72.                 position: absolute;
  73.                 &:hover {
  74.                     transform: scale(1.3);
  75.                     filter: drop-shadow(0 0 0.3em #ff0202);
  76.                 }
  77.             }
  78.             .kong {
  79.                 margin-top: 7px;
  80.                 margin-left: 200px;
  81.             }
  82.             .ying {
  83.                 top: 7px;
  84.                 margin-left: 2px;
  85.             }
  86.         }
  87.         /* 时间 */
  88.         time {
  89.             background: -webkit-linear-gradient(315deg, #e1ff00 50%, #ff0000);
  90.             background-clip: text;
  91.             -webkit-background-clip: text;
  92.             -webkit-text-fill-color: transparent;
  93.             font-size: 1.5rem;
  94.             font-weight: 900;
  95.             text-shadow: 2px -1px 8px rgba(250, 80, 193, 0.323);
  96.             sub {
  97.                 -webkit-text-fill-color: #cfd601;
  98.                 text-shadow: 1px 1px 1px #100000;
  99.                 font-size: 1rem;
  100.             }
  101.         }
  102.         /* 全屏还原关闭按钮 */
  103.         menu {
  104.             display: flex;
  105.             button {
  106.                 background: none;
  107.                 border: none;
  108.             }
  109.             img {
  110.                 width: 35px;
  111.                 margin-top: 5px;
  112.                 margin-right: 5px;
  113.                 cursor: pointer;
  114.                 &:hover {
  115.                     transform: scale(1.2);
  116.                     padding: 5px;
  117.                     background: #ffd000;
  118.                 }
  119.             }
  120.             button:nth-child(2) {
  121.                 display: none;
  122.                 /* 放大镜效果 */
  123.                 transform: scale(1.16);
  124.             }
  125.         }
  126.     }
  127.     /* 头部样式 结束 */
  128.     /* 倒计时样式 */
  129.     .countdown {
  130.         width: 99vw;
  131.         height: 40px;
  132.         display: flex;
  133.         position: fixed;
  134.         transform: translate(0%, 101%);
  135.         background-color: #cbcbcb;
  136.         button {
  137.             cursor: pointer;
  138.         }
  139.         /* 添加的倒计时集合区 */
  140.         #countdownContainer {
  141.             display: flex;
  142.             /* 换行 */
  143.             flex-wrap: wrap;
  144.             .deleteButtonCountdownContainer {
  145.                 display: none;
  146.                 color: red;
  147.             }
  148.         }
  149.         #countdownForm {
  150.             padding: 10px;
  151.             border: 1px solid #ddd;
  152.             border-radius: 5px;
  153.             background-color: #f3f3f3;
  154.         }
  155.     }
  156.     /* 主要main样式 */
  157.     main {
  158.         display: flex;
  159.         /* 列表样式 */
  160.         table {
  161.             border-collapse: collapse;
  162.             caption {
  163.                 background-color: #80a4b1;
  164.                 border-radius: 5px 5px 0 0;
  165.                 span {
  166.                     /* 粗字体 */
  167.                     font-weight: bold;
  168.                 }
  169.             }
  170.             th,
  171.             td {
  172.                 text-align: center;
  173.                 border: 1px solid #ddd;
  174.             }
  175.             th {
  176.                 background-color: #9f9e9e;
  177.             }
  178.             td {
  179.                 color: hsl(0, 0%, 100%);
  180.                 text-shadow: 1px 1px 1px #030303;
  181.             }
  182.         }
  183.         /* 原神版本角色列表样式 */
  184.         #character-table {
  185.             margin-top: 81px;
  186.             .character-image,
  187.             .element-image {
  188.                 /* 默认隐藏角色图片和元素图片 */
  189.                 display: none;
  190.                 position: absolute;
  191.             }
  192.             .addButton134152 {
  193.                 width: 20px;
  194.                 height: 20px;
  195.                 padding: 2px;
  196.                 border-radius: 50%;
  197.                 background-color: #67c23a;
  198.                 background-image: linear-gradient(to top left,
  199.                         rgba(0, 0, 0, 0.2),
  200.                         rgba(0, 0, 0, 0.2) 30%,
  201.                         rgba(0, 0, 0, 0));
  202.                 box-shadow: inset 4px 4px 4px rgba(255, 255, 255, 0.6),
  203.                     inset -4px -4px 5px rgba(0, 0, 0, 0.6);
  204.                 border: 0px solid black;
  205.             }
  206.             /* 按钮√ */
  207.             .addButton {
  208.                 background-color: #f9030300;
  209.                 display: none;
  210.                 height: 15px;
  211.                 width: 25px;
  212.                 border-top: none;
  213.                 border-right: none;
  214.                 border-radius: 0;
  215.                 transform: rotate(-45deg);
  216.                 transition: all 0.5s ease-in-out;
  217.             }
  218.         }
  219.         .upgrade-table {
  220.             margin-top: 81px;
  221.             display: flex;
  222.             /* 升级数据表的编辑按钮:等级\命座\天赋\备注 */
  223.             .editable {
  224.                 /* 鼠标变小手 */
  225.                 cursor: pointer;
  226.                 &:hover {
  227.                     background-color: #000000;
  228.                     border-radius: 3px;
  229.                     padding: 5px;
  230.                     /* 添加过渡效果 */
  231.                     transition: background-color 0.3s ease, padding 0.3s ease;
  232.                 }
  233.             }
  234.         }
  235.     }
  236.     /* 主要main样式 结束 */
  237. </style>
  238. <body>
  239.     <!-- 头部 -->
  240.     <header>
  241.         <figure class="logo">
  242.             <a href="https://blog.csdn.net/lulei5153?spm=1011.2415.3001.5343" title="与妖为邻CSDN博客" target="_blank">
  243.                 <img class="kong" src="file:///D:/img/icon.ico" alt="与妖为邻">
  244.             </a>
  245.             <figcaption class="my_name1">与妖为邻</figcaption>
  246.             <figcaption class="my_name2">与妖为邻</figcaption>
  247.             <a href="file:///D:/web/html%E9%A6%96%E9%A1%B5/%E5%A4%87%E5%BF%98%E5%BD%95.html" class="home_page"
  248.                 title="首页" target="_blank">
  249.                 <img class="ying" src="file:///D:/img/ying.png" alt="与妖为邻">
  250.             </a>
  251.         </figure>
  252.         <time datetime="2024-07-10" title="2024-07-10" id="dateTime">2024-07-10</time>
  253.         <iframe class="tianqi" frameborder="0" width="280" height="36" scrolling="no" hspace="0"
  254.             src="https://i.tianqi.com/?c=code&id=99"></iframe>
  255.         <menu>
  256.             <button class="fullScreen" type="button"><img src="file:///D:/img/全屏.svg" alt="全屏"
  257.                     onclick="fullScreen()"></button>
  258.             <button class="exitFullScreen" type="button"><img src="file:///D:/img/还原.svg" alt="还原"
  259.                     onclick="exitFullScreen()"></button>
  260.             <button type="button"><img src="file:///D:/img/关闭.svg" alt="关闭" onclick="closeAll()"></button>
  261.         </menu>
  262.     </header>
  263.     <!-- 头部 结束 -->
  264.     <!-- 添加倒计时 -->
  265.     <div class="countdown">
  266.         <!-- 倒计时集合区-->
  267.         <div id="countdownContainer"></div>
  268.         <!-- 添加倒计时表单 -->
  269.         <div id="addCountdownDisplay"></div>
  270.     </div>
  271.     <!-- 主要main -->
  272.     <main>
  273.         <!-- 角色列表 -->
  274.         <table id="character-table">
  275.             <caption>
  276.                 <span>原神4.8版本角色列表 </span>
  277.                 <a href="https://genshin-builds.com/cn/characters" target="_blank">数据来源:(genshin-builds.com)</a>
  278.                 <button class="addButton134152"></button>
  279.             </caption>
  280.             <tr>
  281.                 <th>序号</th>
  282.                 <th>元素</th>
  283.                 <th>角色</th>
  284.                 <th>星级</th>
  285.                 <th>添加</th>
  286.                 <th>添加</th>
  287.             </tr>
  288.         </table>
  289.         <!-- 升级数据表 -->
  290.         <div class="upgrade-table">
  291.             <div>
  292.                 <table id="characterTable134"></table>
  293.             </div>
  294.             <div>
  295.                 <table id="characterTable152"></table>
  296.             </div>
  297.         </div>
  298.     </main>
  299.     <!-- 主要main 结束 -->
  300. </body>
  301. <script>
  302.     /* 页面加载完成后才执行必要的初始化操作*/
  303.     window.addEventListener('load', () => {
  304.         renderTable('1340', 'characterTable134');
  305.         renderTable('1520', 'characterTable152');
  306.         initButtons();
  307.     });
  308.     /* 页面加载完成后才执行必要的初始化操作 结束*/
  309.     /* 现在时间*/
  310.     function showTime() {
  311.         var time = document.getElementById("dateTime");
  312.         var d = new Date();
  313.         var y = d.getFullYear();
  314.         var m = padZero(d.getMonth() + 1);
  315.         var W = "星期" + "日一二三四五六".charAt(d.getDay());
  316.         var D = padZero(d.getDate());
  317.         var H = padZero(d.getHours());
  318.         var M = padZero(d.getMinutes());
  319.         var S = padZero(d.getSeconds());
  320.         time.innerHTML = y + '-' + m + '-' + D + '<sub>' + W + '</sub>' + H + ':' + M + ':' + S;
  321.     }
  322.     function padZero(num) {
  323.         return num < 10 ? "0" + num : num;
  324.     }
  325.     showTime();
  326.     setInterval(showTime, 1000);
  327.     /* 现在时间 结束*/
  328.     /* 全屏功能与关闭*/
  329.     function fullScreen() {
  330.         var elem = document.documentElement;
  331.         if (elem.requestFullscreen) {
  332.             elem.requestFullscreen();
  333.         } else if (elem.mozRequestFullScreen) { // Firefox
  334.             elem.mozRequestFullScreen();
  335.         } else if (elem.webkitRequestFullscreen) { // Chrome, Safari and Opera
  336.             elem.webkitRequestFullscreen();
  337.         } else if (elem.msRequestFullscreen) { // IE/Edge
  338.             elem.msRequestFullscreen();
  339.         }
  340.     }
  341.     function exitFullScreen() {
  342.         if (document.exitFullscreen) {
  343.             document.exitFullscreen();
  344.         } else if (document.mozCancelFullScreen) { // Firefox
  345.             document.mozCancelFullScreen();
  346.         } else if (document.webkitExitFullscreen) { // Chrome, Safari and Opera
  347.             document.webkitExitFullscreen();
  348.         } else if (document.msExitFullscreen) { // IE/Edge
  349.             document.msExitFullscreen();
  350.         }
  351.     }
  352.     // 获取全屏和还原按钮
  353.     var fullScreenBtn = document.querySelector(".fullScreen");
  354.     var exitFullScreenBtn = document.querySelector(".exitFullScreen");
  355.     // 监听全屏和还原事件
  356.     document.addEventListener("fullscreenchange", function () {
  357.         if (document.fullscreenElement) {
  358.             fullScreenBtn.style.display = "none";
  359.             exitFullScreenBtn.style.display = "block";
  360.         } else {
  361.             fullScreenBtn.style.display = "block";
  362.             exitFullScreenBtn.style.display = "none";
  363.         }
  364.     });
  365.     // 关闭当前窗口
  366.     function closeAll() {
  367.         window.close();
  368.     }
  369.     /* 全屏功能与关闭 结束*/
  370.     /* 添加倒计时 开始*/
  371.     var isPaused = false;
  372.     var addButtonClicked = false;
  373.     var pauseInterval = null;
  374. // 初始化倒计时
  375. function initCountdown() {
  376.     initUI();
  377.     updateCountdowns();
  378.     setInterval(updateCountdowns, 1000);
  379. }
  380. // 初始化用户界面
  381. function initUI() {
  382.     var body = getElement("addCountdownDisplay");
  383.     body.innerHTML += `<button id="addButton">添加</button> <button id="cancelButton" style="display: none;" onclick="handleCancelOrResume()">取消 倒计时: 10秒恢复运行</button>`;
  384.     body.innerHTML += `<div id="countdownForm" style="display: none;"><input type="text" id="countdownTitle" placeholder="提示信息"><br><input type="datetime-local" id="countdownDate"><button onclick="saveCountdown()">保存</button></div>`;
  385.     getElement('addButton').onclick = function () {
  386.         if (!addButtonClicked) {
  387.             addButtonClicked = true;
  388.             addCountdown();
  389.             getElement('cancelButton').style.display = 'inline'; // 显示取消按钮
  390.             getElement('addButton').style.display = 'none'; // 隐藏添加按钮
  391.         }
  392.     };
  393. }
  394. // 更新倒计时显示
  395. function updateCountdowns() {
  396.     if (isPaused) return;
  397.     var container = getElement("countdownContainer");
  398.     container.innerHTML = "";
  399.     var countdowns = getCountdowns();
  400.     countdowns.forEach(function (countdown, index) {
  401.         var div = document.createElement("div");
  402.         div.innerHTML = `<strong>${countdown.title}</strong>: ${getTimeRemaining(countdown.date)} <button onclick="confirmDelete(${index})" class="deleteButtonCountdownContainer">删除</button>`;
  403.         container.appendChild(div);
  404.     });
  405. }
  406. // 计算剩余时间
  407. function getTimeRemaining(endDate) {
  408.     const total = Date.parse(endDate) - Date.parse(new Date());
  409.     const absTotal = Math.abs(total);
  410.     const seconds = Math.floor((absTotal / 1000) % 60);
  411.     const minutes = Math.floor((absTotal / 1000 / 60) % 60);
  412.     const hours = Math.floor((absTotal / (1000 * 60 * 60)) % 24);
  413.     const days = Math.floor(absTotal / (1000 * 60 * 60 * 24));
  414.     const timeStr = `${days}天 ${padZero(hours)}小时 ${padZero(minutes)}分钟 ${padZero(seconds)}秒`;
  415.     return total <= 0 ? `已过去${timeStr}` : timeStr;
  416. }
  417. // 补零
  418. function padZero(num) {
  419.     return num < 10 ? `0${num}` : num;
  420. }
  421. // 添加倒计时
  422. function addCountdown() {
  423.     getElement("countdownForm").style.display = "block";
  424.     pauseCountdowns(10000);
  425. }
  426. // 暂停倒计时
  427. function pauseCountdowns(duration) {
  428.     isPaused = true;
  429.     showDeleteButtons();
  430.     var timeLeft = 10;
  431.     pauseInterval = setInterval(function () {
  432.         timeLeft--;
  433.         getElement('cancelButton').innerHTML = `取消 倒计时: ${padZero(timeLeft)}秒恢复运行`;
  434.         if (timeLeft <= 0) {
  435.             clearInterval(pauseInterval);
  436.             getElement('countdownDisplay').style.display = "none";
  437.             isPaused = false;
  438.             hideDeleteButtons();
  439.             getElement('cancelButton').innerHTML = `取消 倒计时:已恢复运行`;
  440.         }
  441.     }, 1000);
  442. }
  443. // 显示删除按钮
  444. function showDeleteButtons() {
  445.     var deleteButtons = document.querySelectorAll('.deleteButtonCountdownContainer');
  446.     deleteButtons.forEach(function (button) {
  447.         button.style.display = 'inline';
  448.     });
  449. }
  450. // 隐藏删除按钮
  451. function hideDeleteButtons() {
  452.     var deleteButtons = document.querySelectorAll('.deleteButtonCountdownContainer');
  453.     deleteButtons.forEach(function (button) {
  454.         button.style.display = 'none';
  455.     });
  456. }
  457. // 保存倒计时
  458. function saveCountdown() {
  459.     var title = getElement("countdownTitle").value;
  460.     var date = getElement("countdownDate").value;
  461.     if (title && date) {
  462.         var countdowns = getCountdowns();
  463.         countdowns.push({ title: title, date: date });
  464.         localStorage.setItem("countdowns", JSON.stringify(countdowns));
  465.         getElement("countdownForm").style.display = "none";
  466.         updateCountdowns();
  467.         addButtonClicked = false;
  468.         resumeCountdowns();
  469.         getElement('cancelButton').style.display = 'none'; // 隐藏取消按钮
  470.         getElement('addButton').style.display = 'inline'; // 显示添加倒计时按钮
  471.     } else {
  472.         alert("请填写完整的倒计时信息");
  473.     }
  474. }
  475. // 取消倒计时
  476. function cancelCountdown() {
  477.     getElement("countdownForm").style.display = "none";
  478.     addButtonClicked = false;
  479.     resumeCountdowns();
  480.     getElement('cancelButton').style.display = 'none'; // 隐藏取消按钮
  481.     getElement('addButton').style.display = 'inline'; // 显示添加倒计时按钮
  482. }
  483. // 确认删除倒计时
  484. function confirmDelete(index) {
  485.     if (confirm("确定要删除这个倒计时吗?")) {
  486.         deleteCountdown(index);
  487.         resumeCountdowns();
  488.     }
  489. }
  490. // 删除倒计时
  491. function deleteCountdown(index) {
  492.     var countdowns = getCountdowns();
  493.     countdowns.splice(index, 1);
  494.     localStorage.setItem("countdowns", JSON.stringify(countdowns));
  495.     updateCountdowns();
  496.     getElement('cancelButton').style.display = 'none'; // 隐藏取消按钮
  497.     getElement('addButton').style.display = 'inline'; // 显示添加倒计时按钮
  498.     getElement("countdownForm").style.display = "none"; // 隐藏倒计时表单
  499.     addButtonClicked = false;
  500. }
  501. // 获取所有倒计时
  502. function getCountdowns() {
  503.     return JSON.parse(localStorage.getItem("countdowns")) || [];
  504. }
  505. // 恢复倒计时
  506. function resumeCountdowns() {
  507.     isPaused = false;
  508.     hideDeleteButtons();
  509.     var countdownDisplay = getElement("countdownDisplay");
  510.     if (countdownDisplay) {
  511.         countdownDisplay.style.display = "none";
  512.     }
  513.     clearInterval(pauseInterval);
  514.     getElement('cancelButton').innerHTML = `取消 倒计时:已恢复运行`; // 更新按钮文本
  515. }
  516. // 处理取消或恢复
  517. function handleCancelOrResume() {
  518.     if (addButtonClicked) {
  519.         cancelCountdown();
  520.     } else {
  521.         resumeCountdowns();
  522.     }
  523. }
  524. // 获取元素
  525. function getElement(id) {
  526.     return document.getElementById(id);
  527. }
  528. window.addEventListener('load', initCountdown);
  529. /* 添加倒计时 结束*/
  530.     /* 原神4.8版本角色数据*/
  531.     const characters = [
  532.         {
  533.             element: "火", // 元素类型
  534.             elementImage: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/elements/Pyro.png?strip=all&quality=75&w=48", // 元素图标
  535.             role: [
  536.                 { star: "5", name: "阿蕾奇诺", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/arlecchino/image.png?strip=all&quality=100&w=140", },
  537.                 { star: "5", name: "林尼", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/lyney/image.png?strip=all&quality=100&w=140" },
  538.                 { star: "5", name: "迪希雅", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/dehya/image.png?strip=all&quality=100&w=140" },
  539.                 { star: "5", name: "迪卢克", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/diluc/image.png?strip=all&quality=100&w=140" },
  540.                 { star: "5", name: "胡桃", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/hu_tao/image.png?strip=all&quality=100&w=140", },
  541.                 { star: "5", name: "可莉", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/klee/image.png?strip=all&quality=100&w=140" },
  542.                 { star: "5", name: "宵宫", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/yoimiya/image.png?strip=all&amp;quality=100&amp;w=140" },
  543.                 { star: "4", name: "托马", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/thoma/image.png?strip=all&quality=100&w=140", },
  544.                 { star: "4", name: "烟绯", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/yanfei/image.png?strip=all&quality=100&w=140", },
  545.                 { star: "4", name: "香菱", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/xiangling/image.png?strip=all&quality=100&w=140" },
  546.                 { star: "4", name: "班尼特", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/bennett/image.png?strip=all&quality=100&w=140" },
  547.                 { star: "4", name: "安柏", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/amber/image.png?strip=all&quality=100&w=140" },
  548.                 { star: "4", name: "辛焱", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/xinyan/image.png?strip=all&quality=100&w=140", },
  549.                 { star: "4", name: "嘉明", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/gaming/image.png?strip=all&quality=100&w=140" },
  550.                 { star: "4", name: "夏沃蕾", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/chevreuse/image.png?strip=all&quality=100&w=140" },
  551.                 { star: "5", name: "旅行者 (火)", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/traveler_electro/image.png?strip=all&quality=100&w=140" },
  552.             ]
  553.         },
  554.         {
  555.             element: "水", // 元素类型
  556.             elementImage: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/elements/Hydro.png?strip=all&quality=75&w=48", // 元素图标
  557.             role: [
  558.                 { star: "5", name: "妮露", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/nilou/image.png?strip=all&amp;quality=100&amp;w=140" },
  559.                 { star: "5", name: "莫娜", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/mona/image.png?strip=all&quality=100&w=140" },
  560.                 { star: "5", name: "达达利亚", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/tartaglia/image.png?strip=all&quality=100&w=140" },
  561.                 { star: "5", name: "珊瑚宫心海", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/sangonomiya_kokomi/image.png?strip=all&quality=100&w=140", },
  562.                 { star: "5", name: "希格雯", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/sigewinne/image.png?strip=all&quality=100&w=140" },
  563.                 { star: "5", name: "夜兰", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/yelan/image.png?strip=all&quality=100&w=140" },
  564.                 { star: "5", name: "神里绫人", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/kamisato_ayato/image.png?strip=all&quality=100&w=140" },
  565.                 { star: "5", name: "芙宁娜", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/furina/image.png?strip=all&quality=100&w=140" },
  566.                 { star: "5", name: "那维莱特", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/neuvillette/image.png?strip=all&quality=100&w=140" },
  567.                 { star: "4", name: "芭芭拉", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/barbara/image.png?strip=all&quality=100&w=140" },
  568.                 { star: "4", name: "行秋", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/xingqiu/image.png?strip=all&quality=100&w=140" },
  569.                 { star: "4", name: "坎蒂丝", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/candace/image.png?strip=all&amp;quality=100&amp;w=140" },
  570.                 { star: "5", name: "旅行者 (水)", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/traveler_anemo/image.png?strip=all&quality=100&w=140" },
  571.             ]
  572.         },
  573.         {
  574.             element: "风", // 元素类型
  575.             elementImage: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/elements/Anemo.png?strip=all&quality=75&w=48", // 元素图标
  576.             role: [
  577.                 { star: "5", name: "温迪", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/venti/image.png?strip=all&quality=100&w=140" },
  578.                 { star: "5", name: "琴", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/jean/image.png?strip=all&quality=100&w=140" },
  579.                 { star: "5", name: "魈", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/xiao/image.png?strip=all&quality=100&w=140" },
  580.                 { star: "5", name: "闲云", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/xianyun/image.png?strip=all&quality=100&w=140" },
  581.                 { star: "5", name: "枫原万叶", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/kaedehara_kazuha/image.png?strip=all&quality=100&w=140" },
  582.                 { star: "5", name: "流浪者", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/wanderer/image.png?strip=all&quality=100&w=140" },
  583.                 { star: "4", name: "珐露珊", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/faruzan/image.png?strip=all&quality=100&w=140" },
  584.                 { star: "4", name: "砂糖", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/sucrose/image.png?strip=all&quality=100&w=140" },
  585.                 { star: "4", name: "鹿野院平藏", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/shikanoin_heizou/image.png?strip=all&quality=100&w=140" },
  586.                 { star: "4", name: "琳妮特", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/lynette/image.png?strip=all&quality=100&w=140" },
  587.                 { star: "4", name: "早柚", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/sayu/image.png?strip=all&amp;quality=100&amp;w=140" },
  588.                 { star: "5", name: "旅行者 (风)", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/traveler_anemo/image.png?strip=all&quality=100&w=140" },
  589.             ]
  590.         },
  591.         {
  592.             element: "雷", // 元素类型
  593.             elementImage: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/elements/Electro.png?strip=all&quality=75&w=48", // 元素图标
  594.             role: [
  595.                 { star: "5", name: "刻晴", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/keqing/image.png?strip=all&quality=100&w=140" },
  596.                 { star: "5", name: "雷电将军", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/raiden_shogun/image.png?strip=all&quality=100&w=140" },
  597.                 { star: "5", name: "八重神子", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/yae_miko/image.png?strip=all&quality=100&w=140", },
  598.                 { star: "5", name: "克洛琳德", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/clorinde/image.png?strip=all&quality=100&w=140", },
  599.                 { star: "5", name: "赛诺", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/cyno/image.png?strip=all&quality=100&w=140", },
  600.                 { star: "4", name: "菲谢尔", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/fischl/image.png?strip=all&quality=100&w=140" },
  601.                 { star: "4", name: "北斗", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/beidou/image.png?strip=all&quality=100&w=140" },
  602.                 { star: "4", name: "丽莎", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/lisa/image.png?strip=all&quality=100&w=140" },
  603.                 { star: "4", name: "雷泽", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/razor/image.png?strip=all&quality=100&w=140", },
  604.                 { star: "4", name: "赛索斯", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/sethos/image.png?strip=all&quality=100&w=140", },
  605.                 { star: "4", name: "多莉", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/dori/image.png?strip=all&quality=100&w=140", },
  606.                 { star: "4", name: "久岐忍", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/kuki_shinobu/image.png?strip=all&quality=100&w=140", },
  607.                 { star: "4", name: "九条裟罗", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/kujou_sara/image.png?strip=all&quality=100&w=140", },
  608.                 { star: "5", name: "旅行者 (雷)", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/traveler_dendro/image.png?strip=all&quality=100&w=140" }
  609.             ]
  610.         },
  611.         {
  612.             element: "草", // 元素类型
  613.             elementImage: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/elements/Dendro.png?strip=all&quality=75&w=48", // 元素图标
  614.             role: [
  615.                 { star: "5", name: "艾梅莉埃", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/emilie/image.png?strip=all&quality=100&w=140", },
  616.                 { star: "5", name: "艾尔海森", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/alhaitham/image.png?strip=all&quality=100&w=140", },
  617.                 { star: "5", name: "白术", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/baizhu/image.png?strip=all&quality=100&w=140", },
  618.                 { star: "5", name: "纳西妲", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/nahida/image.png?strip=all&quality=100&w=140", },
  619.                 { star: "5", name: "提纳里", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/tighnari/image.png?strip=all&quality=100&w=140", },
  620.                 { star: "4", name: "绮良良", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/kirara/image.png?strip=all&quality=100&w=140", },
  621.                 { star: "4", name: "卡维", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/kaveh/image.png?strip=all&quality=100&w=140", },
  622.                 { star: "4", name: "瑶瑶", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/yaoyao/image.png?strip=all&quality=100&w=140", },
  623.                 { star: "4", name: "柯莱", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/collei/image.png?strip=all&quality=100&w=140", },
  624.                 { star: "5", name: "旅行者 (草)", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/traveler_dendro/image.png?strip=all&quality=100&w=140" }
  625.             ]
  626.         },
  627.         {
  628.             element: "冰", // 元素类型
  629.             elementImage: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/elements/Cryo.png?strip=all&quality=75&w=48", // 元素图标
  630.             role: [
  631.                 { star: "5", name: "莱欧斯利", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/wriothesley/image.png?strip=all&quality=100&w=140", },
  632.                 { star: "5", name: "七七", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/qiqi/image.png?strip=all&quality=100&w=140", },
  633.                 { star: "5", name: "甘雨", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/ganyu/image.png?strip=all&quality=100&w=140", },
  634.                 { star: "5", name: "申鹤", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/shenhe/image.png?strip=all&quality=100&w=140", },
  635.                 { star: "5", name: "神里绫华", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/kamisato_ayaka/image.png?strip=all&quality=100&w=140", },
  636.                 { star: "5", name: "埃洛伊", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/aloy/image.png?strip=all&quality=100&w=140", },
  637.                 { star: "5", name: "优菈", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/eula/image.png?strip=all&quality=100&w=140", },
  638.                 { star: "4", name: "菲米尼", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/freminet/image.png?strip=all&quality=100&w=140", },
  639.                 { star: "4", name: "米卡", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/mika/image.png?strip=all&quality=100&w=140", },
  640.                 { star: "4", name: "莱依拉", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/layla/image.png?strip=all&quality=100&w=140", },
  641.                 { star: "4", name: "罗莎莉亚", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/rosaria/image.png?strip=all&quality=100&w=140", },
  642.                 { star: "4", name: "迪奥娜", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/diona/image.png?strip=all&quality=100&w=140", },
  643.                 { star: "4", name: "重云", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/chongyun/image.png?strip=all&quality=100&w=140", },
  644.                 { star: "4", name: "凯亚", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/kaeya/image.png?strip=all&quality=100&w=140", },
  645.                 { star: "4", name: "夏洛蒂", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/charlotte/image.png?strip=all&quality=100&w=140", },
  646.                 { star: "5", name: "旅行者 (冰)", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/traveler_geo/image.png?strip=all&quality=100&w=140" }
  647.             ]
  648.         },
  649.         {
  650.             element: "岩", // 元素类型
  651.             elementImage: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/elements/Geo.png?strip=all&quality=75&w=48", // 元素图标
  652.             role: [
  653.                 { star: "5", name: "千织", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/chiori/image.png?strip=all&quality=100&w=140", },
  654.                 { star: "5", name: "娜维娅", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/navia/image.png?strip=all&quality=100&w=140", },
  655.                 { star: "5", name: "荒泷一斗", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/arataki_itto/image.png?strip=all&quality=100&w=140", },
  656.                 { star: "5", name: "阿贝多", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/albedo/image.png?strip=all&quality=100&w=140", },
  657.                 { star: "5", name: "钟离", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/zhongli/image.png?strip=all&quality=100&w=140", },
  658.                 { star: "4", name: "云堇", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/yun_jin/image.png?strip=all&quality=100&w=140", },
  659.                 { star: "4", name: "五郎", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/gorou/image.png?strip=all&quality=100&w=140", },
  660.                 { star: "4", name: "凝光", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/ningguang/image.png?strip=all&quality=100&w=140", },
  661.                 { star: "4", name: "诺艾尔", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/noelle/image.png?strip=all&quality=100&w=140", },
  662.                 { star: "5", name: "旅行者 (岩)", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/traveler_geo/image.png?strip=all&quality=100&w=140", },
  663.             ]
  664.         }
  665.     ];
  666.     /* 原神4.8版本角色数据 结束*/
  667.     /* 原神元素颜色数据*/
  668.     const elementColors = {
  669.         "火": "#FF9933",
  670.         "水": "#3399FF",
  671.         "风": "#66c6ac",
  672.         "雷": "#CC66FF",
  673.         "草": "#66CC66",
  674.         "冰": "#99CCFF",
  675.         "岩": "#FFCC33"
  676.     };
  677.     function getElementColor(element) {
  678.         return elementColors[element];
  679.     }
  680.     function getElementImage(element) {
  681.         const foundElement = characters.find(e => e.element === element);
  682.         return foundElement ? foundElement.elementImage : "";
  683.     }
  684.     function getCharacterImage(role) {
  685.         for (const element of characters) {
  686.             const foundRole = element.role.find(r => r.name === role);
  687.             if (foundRole) {
  688.                 return foundRole.image;
  689.             }
  690.         }
  691.         return "";
  692.     }
  693.     /* 原神元素颜色数据 结束*/
  694.     /* 原神全部角色列表*/
  695.     function loadData() {
  696.         const table = document.querySelector('#character-table');
  697.         let index = 1;
  698.         let elementIndex = {};
  699.         characters.forEach(element => {
  700.             if (!elementIndex[element.element]) {
  701.                 elementIndex[element.element] = 1;
  702.             }
  703.             element.role.forEach(role => {
  704.                 const row = table.insertRow();
  705.                 row.insertCell().textContent = index++;
  706.                 const elementCell = row.insertCell();
  707.                 const elementColor = getElementColor(element.element);
  708.                 elementCell.innerHTML = `<span class="element-name" style="color: ${elementColor};">${element.element} (${elementIndex[element.element]++})</span><img src="${element.elementImage}" alt="${element.element}" class="element-image">`;
  709.                 const roleCell = row.insertCell();
  710.                 const roleColor = role.star === "5" ? "#ac7647" : "#846baa";
  711.                 roleCell.innerHTML = `<span class="character-name" style="color: ${roleColor};">${role.name}</span><img src="${role.image}" alt="${role.name}" class="character-image">`;
  712.                 const starCell = row.insertCell();
  713.                 const addCell134 = row.insertCell();
  714.                 addCell134.innerHTML = `<button onclick="addCharacter('1340', '${element.element}', '${role.name}', '${role.image}', '${role.star}')">培养</button><button class="addButton addButton134"></button>`;
  715.                 const addCell152 = row.insertCell();
  716.                 addCell152.innerHTML = `</button><button onclick="addCharacter('1520', '${element.element}', '${role.name}', '${role.image}', '${role.star}')">抽到</button><button class="addButton addButton152">`;
  717.                 starCell.textContent = role.star;
  718.                 row.style.backgroundColor = elementColor; // 设置背景颜色
  719.             });
  720.         });
  721.     }
  722.     loadData();
  723.     /* 原神全部角色列表 结束*/
  724.     /* 原神角色列表显示角色图片、元素图片*/
  725.     const table = document.querySelector('#character-table');
  726.     // 添加事件监听器
  727.     table.addEventListener('mouseover', function (event) {
  728.         const target = event.target;
  729.         if (target.classList.contains('character-name')) {
  730.             target.nextElementSibling.style.display = 'inline'; // 显示角色图片
  731.         } else if (target.classList.contains('element-name')) {
  732.             target.nextElementSibling.style.display = 'inline'; // 显示元素图片
  733.         }
  734.     });
  735.     table.addEventListener('mouseout', function (event) {
  736.         const target = event.target;
  737.         if (target.classList.contains('character-name')) {
  738.             target.nextElementSibling.style.display = 'none'; // 隐藏角色图片
  739.         } else if (target.classList.contains('element-name')) {
  740.             target.nextElementSibling.style.display = 'none'; // 隐藏元素图片
  741.         }
  742.     });
  743.     /* 原神角色列表显示角色图片、元素图片 结束*/
  744.     /* 添加角色功能*/
  745.     function addCharacter(storageKey, element, role, image, star) {
  746.         const data = JSON.parse(localStorage.getItem(storageKey)) || [];
  747.         const elementData = data.find(e => e.element === element);
  748.         if (elementData && elementData.characters.some(c => c.role === role)) {
  749.             document.querySelector('.addButton134152').style.backgroundColor = '#ff0000';
  750.             return;
  751.         }
  752.         if (!elementData) {
  753.             data.push({
  754.                 element: element,
  755.                 characters: []
  756.             });
  757.         }
  758.         const newCharacter = {
  759.             role: role,
  760.             image: image,
  761.             star: star,
  762.             level: 1,
  763.             constellation: 0,
  764.             talent: "1/1/1",
  765.             note: "备注",
  766.             selected: false
  767.         };
  768.         data.find(e => e.element === element).characters.push(newCharacter);
  769.         localStorage.setItem(storageKey, JSON.stringify(data));
  770.         renderTable(storageKey, storageKey === '1340' ? 'characterTable134' : 'characterTable152');
  771.         initButtons(); // 更新按钮状态
  772.     }
  773.     /* 添加角色功能 结束*/
  774.     /* 升级数据表*/
  775.     function renderTable(storageKey, tableId) {
  776.         const data = JSON.parse(localStorage.getItem(storageKey)) || [];
  777.         const characterTable = document.getElementById(tableId);
  778.         characterTable.innerHTML = `
  779.         <caption>
  780.             <a href="https://bbs.mihoyo.com/ys/strategy/channel/map/37/39?bbs_presentation_style=no_header&amp;hide_nav=true&amp;from=COLLECTION_BG" target="_blank">原神wiki角色攻略</a>
  781.             <span>${tableId === 'characterTable134' ? '原神重点培养列表' : '原神抽到角色数据表'}</span>
  782.             <a href="https://act.mihoyo.com/ys/app/interactive-map/index.html?bbs_presentation_style=no_header&amp;lang=zh-cn&amp;utm_source=bbs&amp;utm_medium=mys&amp;utm_campaign=pcicon&amp;_markerFps=24#/map/2?shown_types=NaN,-1084,508,2&amp;center=2008.50,-1084.00&amp;zoom=-3.00" target="_blank">提瓦特大地图(mihoyo.com)</a>
  783.            <button type="button" onclick="deleteSelectedRows('${storageKey}', '${tableId}')" style="float: right;color:#ff0000;cursor: pointer;">删除选中</button>
  784.         </caption>
  785.         <tr>
  786.             <th>序号</th>
  787.             <th>元素</th>
  788.             <th>角色</th>
  789.             <th>角色图片</th>
  790.             <th style="display:none;">星级</th>
  791.             <th>等级</th>
  792.             <th>命座</th>
  793.             <th style="width:100px;">天赋</th>
  794.             <th style="width:400px;">备注</th>
  795.             <th>选择</th>
  796.         </tr>
  797.     `;
  798.         let row = 1;
  799.         let lastElement = null;
  800.         data.forEach((elementData, i) => elementData.characters.forEach((character, j) => {
  801.             const newRow = characterTable.insertRow();
  802.             newRow.insertCell().textContent = row++;
  803.             if (elementData.element !== lastElement) {
  804.                 const elementCell = newRow.insertCell();
  805.                 elementCell.rowSpan = elementData.characters.length;
  806.                 const elementImage = document.createElement('img');
  807.                 elementImage.src = getElementImage(elementData.element);
  808.                 elementImage.style.width = '24px';
  809.                 elementImage.onerror = function () {
  810.                     elementCell.textContent = elementData.element;
  811.                 };
  812.                 elementImage.title = elementData.element; // 添加title属性显示元素名称
  813.                 elementCell.appendChild(elementImage);
  814.                 lastElement = elementData.element;
  815.             }
  816.             const roleCell = newRow.insertCell();
  817.             roleCell.textContent = character.role;
  818.             roleCell.style.color = character.star === "5" ? "#ac7647" : "#846baa";
  819.             const characterImageCell = newRow.insertCell();
  820.             const characterImage = document.createElement('img');
  821.             characterImage.src = getCharacterImage(character.role);
  822.             characterImage.style.width = '48px';
  823.             characterImageCell.appendChild(characterImage);
  824.             newRow.insertCell().style.display = 'none'; // 隐藏星级列
  825.             newRow.insertCell().innerHTML = `<span class="editable" onclick="editField('${storageKey}', 'level', ${i}, ${j})">${character.level}</span>`;
  826.             newRow.insertCell().innerHTML = `<span class="editable" onclick="editField('${storageKey}', 'constellation', ${i}, ${j})">${character.constellation}</span>`;
  827.             newRow.insertCell().innerHTML = `<span class="editable" onclick="editField('${storageKey}', 'talent', ${i}, ${j})">${character.talent}</span>`;
  828.             newRow.insertCell().innerHTML = `<span class="editable" onclick="editField('${storageKey}', 'note', ${i}, ${j})">${character.note}</span>`;
  829.             newRow.style.backgroundColor = getElementColor(elementData.element);
  830.             newRow.insertCell().innerHTML = `<input type="checkbox" ${character.selected ? 'checked' : ''} onchange="updateCheckboxStatus('${storageKey}', this, ${i}, ${j})">`;
  831.         }));
  832.     }
  833.     /* 升级数据表 结束*/
  834.     /* 编辑等级、命座、天赋、备注数据*/
  835.     function editField(storageKey, field, elementIndex, characterIndex) {
  836.         let data = JSON.parse(localStorage.getItem(storageKey)) || [];
  837.         const newValue = prompt("请输入新的值:", data[elementIndex].characters[characterIndex][field]);
  838.         if (newValue !== null) {
  839.             data[elementIndex].characters[characterIndex][field] = newValue;
  840.             localStorage.setItem(storageKey, JSON.stringify(data));
  841.             renderTable(storageKey, storageKey === '1340' ? 'characterTable134' : 'characterTable152');
  842.         }
  843.     }
  844.     /* 编辑等级、命座、天赋、备注数据 结束*/
  845.     /* 删除功能*/
  846.     function deleteSelectedRows(storageKey, tableId) {
  847.         const data = JSON.parse(localStorage.getItem(storageKey)) || [];
  848.         data.forEach(elementData => {
  849.             elementData.characters = elementData.characters.filter(character => !character.selected);
  850.         });
  851.         localStorage.setItem(storageKey, JSON.stringify(data));
  852.         renderTable(storageKey, tableId);
  853.         initButtons(); // 重新初始化按钮状态
  854.     }
  855.     /* 删除功能 结束*/
  856.     /* 复选框状态更新功能*/
  857.     function updateCheckboxStatus(storageKey, checkbox, elementIndex, characterIndex) {
  858.         const data = JSON.parse(localStorage.getItem(storageKey)) || [];
  859.         data[elementIndex].characters[characterIndex].selected = checkbox.checked;
  860.         localStorage.setItem(storageKey, JSON.stringify(data));
  861.     }
  862.     /* 复选框状态更新功能 结束*/
  863.     /* 按钮切换功能*/
  864.     function initButtons() {
  865.         const table = document.querySelector('#character-table');
  866.         const rows = table.rows;
  867.         for (let i = 1; i < rows.length; i++) {
  868.             const elementCell = rows[i].cells[1];
  869.             const roleCell = rows[i].cells[2];
  870.             const element = elementCell.querySelector('.element-name').textContent.split(' ')[0];
  871.             const role = roleCell.querySelector('.character-name').textContent;
  872.             const existingElement134 = JSON.parse(localStorage.getItem('1340'))?.find(e => e.element === element);
  873.             const existingElement152 = JSON.parse(localStorage.getItem('1520'))?.find(e => e.element === element);
  874.             const existingCharacter134 = existingElement134?.characters.find(c => c.role === role);
  875.             const existingCharacter152 = existingElement152?.characters.find(c => c.role === role);
  876.             if (existingCharacter134) {
  877.                 rows[i].cells[4].querySelector('button').style.display = 'none';
  878.                 rows[i].cells[4].querySelector('.addButton134').style.display = 'inline';
  879.             } else {
  880.                 rows[i].cells[4].querySelector('button').style.display = 'inline';
  881.                 rows[i].cells[4].querySelector('.addButton134').style.display = 'none';
  882.             }
  883.             if (existingCharacter152) {
  884.                 rows[i].cells[5].querySelector('button').style.display = 'none';
  885.                 rows[i].cells[5].querySelector('.addButton152').style.display = 'inline';
  886.             } else {
  887.                 rows[i].cells[5].querySelector('button').style.display = 'inline';
  888.                 rows[i].cells[5].querySelector('.addButton152').style.display = 'none';
  889.             }
  890.         }
  891.     }
  892.     /* 按钮切换功能 结束*/
  893. </script>
  894. </html>
复制代码
 


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

大连全瓷种植牙齿制作中心

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表