好的!以下是一个节点线路筛选工具的 HTML 和 JavaScript 实现,该工具可以帮助用户快速筛选网络设备

HTML 代码

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.">Nodes 网络设备筛选</title>
    <style>
        .filter-box {
            width: 3px;
            margin: 1px auto;
            padding: 1px;
            border: 1px solid #ccc;
            border-radius: 5px;
        }
        .filter-input {
            width: 1%;
            padding: 8px;
            margin: 5px 0;
            border: 2px solid #7bff;
            border-radius: 3px;
            cursor: pointer;
        }
        .filter-input:hover {
            background-color: #eee;
        }
        .result-list {
            background-color: #f9f9f9;
            padding: 1px;
            border-radius: 5px;
        }
        .result-item {
            background-color: #fff;
            padding: 8px;
            margin: 5px;
            border-radius: 3px;
            cursor: pointer;
        }
        input[type="text"] {
            width: 1%;
            margin: 1px 0;
        }
    </style>
</head>
<body>
    <div class="filter-box">
        <h3>Nodes 网络设备筛选</h3>
        <div class="filter-input">
            <label>设备分类:</label>
            <select name="nodesClass">
                <option value="server">服务器</option>
                <option value="container">容器</option>
                <option value="storage">存储</option>
                <option value="network">网络</option>
            </select>
        </div>
        <div class="filter-input">
            <label>筛选条件:</label>
            <input type="text" id="filterCondition" placeholder="请输入筛选条件">
        </div>
        <button onclick="filterNodes()">筛选</button>
        <div class="result-list" id="resultList"></div>
    </div>
    <script>
        function filterNodes() {
            const nodesClass = document.getElementById('nodesClass').value;
            const filterCondition = document.getElementById('filterCondition').value;
            const resultList = document.getElementById('resultList');
            // 筛选出符合设备分类和条件的设备
            const resultItems = [];
            const devices = document.querySelectorAll('.node');
            devices.forEach(device => {
                const node = device.querySelector('.node');
                const nodeCategory = node.querySelector('span').textContent;
                const condition = (nodeCategory === '运行时间' && node.textContent && node.textContent.includes('1h')) ||
                               (nodeCategory === '运行时间' && node.textContent && node.textContent.includes('>1h')) ||
                               (nodeCategory === '运行时间' && node.textContent && node.textContent.includes('<1h')) ||
                               (nodeCategory === '运行时间' && node.textContent && node.textContent.includes('<=1h')) ||
                               (nodeCategory === '运行时间' && node.textContent && node.textContent.includes('>=1h'));
                if (condition === filterCondition) {
                    resultItems.push(node);
                }
            });
            resultList.innerHTML = '';
            resultItems.forEach(item => {
                const itemElement = document.createElement('div');
                itemElement.className = 'result-item';
                itemElement.innerHTML = item.textContent + ': ' + item.textContent.dataset.nodeId + '<br>';
                // 添加设备信息
                const deviceContent = item.textContent.dataset.nodeId;
                const parts = deviceContent.split('\n');
                const type = parts[].toLowerCase();
                const details = {
                    id: parts[1],
                    name: parts[2],
                    description: parts[3],
                    icon: parts[4],
                    iconUrl: parts[5],
                    status: parts[6],
                    statusColor: parts[7],
                    category: type,
                    label: type,
                    runningTime: parts[8],
                    storageSize: parts[9],
                    cpus: parts[1],
                    statusIsRunning: (parts[6] === 'running' || parts[6] === 'stopped'),
                    statusIs malfunctioning: parts[6] === 'malfunctioning'
                };
                // 添加设备信息到结果列表
                itemElement.innerHTML += '<div class="device-info">
                    <h4>' + details.label + '</h4>'
                    <div class="device-info">
                        <p>Id: ' + details.id + '</p>'
                        <p>Name: ' + details.name + '</p>'
                        <p>Description: ' + details.description + '</p>'
                        <p>Icon: ' + details.icon + '</p>'
                        <p>Icon URL: ' + details.iconUrl + '</p>'
                        <p>Running Time: ' + details.runningTime + 'h</p>'
                        <p>Storage Size: ' + details.storageSize + 'MB</p>'
                        <p>CPU: ' + details.cpus + '台</p>'
                        <p>Status: ' + details.status + '</p>'
                        <p>Status Color: ' + details.statusColor + '</p>'
                        <p>Category: ' + details.label + '</p>'
                        <p>Running: ' + details.statusIsRunning + ' - ' + details.statusIs malfunctioning + '</p>'
                    </div>
                </div>
                resultList.appendChild(itemElement);
            });
            // 保存筛选结果
            const savedResult = document.createElement('div');
            savedResult.className = 'result-save';
            savedResult.innerHTML = '筛选结果保存中...';
            resultList.appendChild(savedResult);
            // 重新开始筛选
            document.getElementById('filterCondition').value = filterCondition;
            document.getElementById('nodesClass').value = nodesClass;
            filterNodes();
        }
    </script>
</body>
</html>

说明

  1. 筛选条件:用户可以通过输入筛选条件来选择特定的设备。

    • 运行时间: 输入'1h'(仅运行时间),'>1h'(运行时间大于1小时),'<=1h'(运行时间小于等于1小时),'>=1h'(运行时间大于等于1小时)。
    • 存储空间: 输入'1TB'(仅存储空间大小),'>1TB'(存储空间大于1TB),'<=1TB'(存储空间小于等于1TB)。
    • CPU类型: 输入'x86_64'(x86_64架构),'arm'( arm架构)。
    • 设备分类: 选择服务器、容器、存储或网络。
  2. 筛选设备:系统会根据用户的筛选条件筛选出符合设备分类和条件的设备,并显示筛选结果。

  3. 筛选结果:每个设备都会显示详细的设备信息,包括名称、描述、 icon、icon URL、运行时间、存储空间、CPU数量、状态等信息。

  4. 保存和重新筛选:用户可以保存筛选结果,并重新开始筛选,或者通过下拉菜单重新选择设备分类。

  5. 输出格式:结果会以列表形式展示,每个设备信息清晰易读。

这个工具非常直观,用户可以根据自己的需求进行筛选,同时也能快速了解筛选后的设备信息。

好的!以下是一个节点线路筛选工具的 HTML 和 JavaScript 实现,该工具可以帮助用户快速筛选网络设备

扫码下载SuperFastVPN

扫码下载SuperFastVPN

028-8527-4163
扫码下载SuperFastVPN

扫码下载SuperFastVPN

网站地图