以下是一个使用 HTML、CSS 和 JavaScript 实现淘宝产品 SKU 多选项计算价格的示例代码。 HTML 代码 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="styles.css"> <title>SKU 价格计算</title> </head> <body> <div class="product-container"> <h1>产品 SKU 价格计算</h1> <!-- 颜色选项 --> <div class="option-group"> <label for="color">颜色:</label> <select id="color"> <option value="red" data-price="10">红色</option> <option value="blue" data-price="12">蓝色</option> <option value="green" data-price="15">绿色</option> </select> </div> <!-- 尺寸选项 --> <div class="option-group"> <label for="size">尺寸:</label> <select id="size"> <option value="S" data-price="5">S</option> <option value="M" data-price="7">M</option> <option value="L" data-price="9">L</option> </select> </div> <!-- 数量输入 --> <div class="option-group"> <label for="quantity">数量:</label> <input type="number" id="quantity" value="1" min="1"> </div> <!-- 显示总价 --> <div class="total-price"> <p>总价: <span id="total">0</span> 元</p> </div> </div> <script src="script.js"></script> </body> </html> ``` CSS 代码(styles.css) ```css body { font-family: Arial, sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background-color: #f4f4f9; } .product-container { background-color: #fff; padding: 20px; border-radius: 8px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); width: 300px; } h1 { text-align: center; margin-bottom: 20px; } .option-group { margin-bottom: 15px; } label { display: block; margin-bottom: 5px; } select, input[type="number"] { width: 100%; padding: 8px; border: 1px solid #ccc; border-radius: 4px; } .total-price { margin-top: 20px; text-align: center; font-size: 18px; font-weight: bold; } ``` JavaScript 代码(script.js) ```javascript // 获取 DOM 元素 const colorSelect = document.getElementById('color'); const sizeSelect = document.getElementById('size'); const quantityInput = document.getElementById('quantity'); const totalSpan = document.getElementById('total'); // 计算总价的函数 function calculateTotal() { // 获取颜色选项的价格 const colorPrice = parseFloat(colorSelect.options[colorSelect.selectedIndex].dataset.price); // 获取尺寸选项的价格 const sizePrice = parseFloat(sizeSelect.options[sizeSelect.selectedIndex].dataset.price); // 获取数量 const quantity = parseInt(quantityInput.value); // 计算总价 const total = (colorPrice + sizePrice) * quantity; // 更新总价显示 totalSpan.textContent = total; } // 为选项和数量输入添加事件监听器 colorSelect.addEventListener('change', calculateTotal); sizeSelect.addEventListener('change', calculateTotal); quantityInput.addEventListener('input', calculateTotal); // 初始化计算总价 calculateTotal(); ``` 代码解释 1. HTML:创建了一个包含颜色、尺寸选择框和数量输入框的表单,以及一个用于显示总价的区域。 2. CSS:对页面进行了美化,使其居中显示,并添加了一些样式,如圆角、阴影等。 3. JavaScript:通过监听选择框的 `change` 事件和输入框的 `input` 事件,在用户选择或输入时重新计算总价。 需要小心的地方 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 确保 `data-price` 属性的值为有效的数字,否则在进行价格计算时会出现 NaN 错误。 2. 处理用户输入的数量,要确保输入的是有效的正整数,避免出现负数或非数字的情况。 3. 当选项较多时,要考虑性能问题,避免频繁的 DOM 操作和不必要的计算。 [2025-08-20 21:50:25 | AI写代码神器 | 1193点数解答]