document.getElementById失效:输入RGB值后页面背景未变色求修复
修复RGB颜色选择器无响应问题
你的代码存在3个关键问题导致点击按钮后无反应,修复方法如下:
按钮标签语法错误
<input type="submit">是自闭合标签,不能用</input>包裹按钮文本,需改为用value属性设置按钮文字。未获取输入框的实际值
JS中直接获取了输入框的DOM元素对象,而非用户输入的数值,需要通过.value属性获取输入值。字符串拼接语法错误
构建rgb()颜色字符串时,)前缺少加号,导致JS语法报错,函数无法正常执行。
另外可以优化label与input的id匹配:label的for属性是大写R/G/B,input的id是小写r/g/b,统一为小写更规范(不修复也不影响功能,但更严谨)。
修复后的完整代码:
<!DOCTYPE html> <html> <head> <title>Color picker</title> </head> <body style="text-align: center;"> <h1> COLOR PICKER </h1> <label for="r">R: </label> <input type="number" maxlength="3" min="0" max="255" id="r"> <label for="g">G: </label> <input type="number" maxlength="3" min="0" max="255" id="g"> <label for="b">B: </label> <input type="number" maxlength="3" min="0" max="255" id="b"><br><br> <input type="submit" onclick="getColor()" value="Get color"> <script> function getColor() { var r = document.getElementById("r").value; var g = document.getElementById("g").value; var b = document.getElementById("b").value; var color = "rgb("+ [r,g,b].join(',') +")"; document.body.style.background = color; } </script> </body> </html>
内容的提问来源于stack exchange,提问作者SnappyRiffs
相关产品推荐
相关产品推荐

