请老师看一下,并回答一个问题
来源:1-19 自由编程
96年的nash
2019-04-16 11:14:09
<!DOCTYPE html > <html> <head> <meta charset="UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>jQuery练习</title> <style type="text/css"> .div1{ float: left; width: 50px; line-height: 30px; background-color: lightgray; margin-left: 10px; text-align: center; vertical-align: middle; } .div2{ width: 300px; height: 300px; border: solid gray 1px; margin-top: 60px; color: red; } </style> </head> <body> <h2>请选择背景颜色</h2> <div> <div id="blue" class="div1">蓝色</div> <div id="green" class="div1">绿色</div> </div> <div class="div2" id="bg"> </div> <div>输入颜色首字母: <input type="text" name="color"></div> <script type="text/javascript" src="js/jquery-3.3.1.js"></script> <script type="text/javascript"> alert("欢迎来到设置颜色的页面"); $("#blue").on("click",function(){ //$(this).css({"color":"red"}); $(".div2").text("蓝色背景"); $(".div2").css("background-color","blue"); }); $("#green").on("click",function(){ $(".div2").text("绿色背景"); $(".div2").css({"background-color":"green","font-weight":"border","font-style":"italic"}); }); $("input[type='text']").keypress(function(event){ console.log(event); if(event.keyCode==66){ $(".div2").css("background-color","blue"); $(".div2").text(""); } else if(event.keyCode==71){ $(".div2").css("background-color","green"); $(".div2").text(""); } }) </script> </body> </html>
为什么直接用val清楚文本不行?
2回答
同学你好。jQuery提供了三个方法来设置或返回所选元素的内容:
1、text() - 设置或返回所选元素的文本内容,相当于包裹在闭合标签之间的字
2、html() - 设置或返回所选元素的内容(包括 HTML 标记)
3、 val() - 设置或返回表单字段的值value属性
同学没办法使用val()改变div2的原因是,div2本来就是没有value属性的。
即便使用了$(".div2").text("<p>蓝色背景</p>"); 写入的还只是文本,不会变为标签:
所以这里除了同学的实现方式,还可以用下面方式实现:
<!DOCTYPE html > <html> <head> <meta charset="UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>jQuery练习</title> <style type="text/css"> .div1{ float: left; width: 50px; line-height: 30px; background-color: lightgray; margin-left: 10px; text-align: center; vertical-align: middle; } .div2{ width: 300px; height: 300px; border: solid gray 1px; margin-top: 60px; color: red; } </style> </head> <body> <h2>请选择背景颜色</h2> <div> <div id="blue" class="div1">蓝色</div> <div id="green" class="div1">绿色</div> </div> <div class="div2" id="bg"> </div> <div>输入颜色首字母: <input type="text" name="color"></div> <script type="text/javascript" src="js/jquery-3.3.1.js"></script> <script type="text/javascript"> alert("欢迎来到设置颜色的页面"); $("#blue").on("click",function(){ //$(this).css({"color":"red"}); $(".div2").html("<p>蓝色背景</p>"); $(".div2").css("background-color","blue"); }); $("#green").on("click",function(){ $(".div2").html("<p>绿色背景</p>"); $(".div2").css({"background-color":"green","font-weight":"border","font-style":"italic"}); }); $("input[type='text']").keypress(function(event){ console.log(event); if(event.keyCode==66){ $(".div2").css("background-color","blue"); $("p").remove(); } else if(event.keyCode==71){ $(".div2").css("background-color","green"); $("p").remove(); } }) </script> </body> </html>
如果解答了同学的疑问,望采纳~
祝学习愉快~
好帮手慕柯南
2019-04-16
同学你好!val可以清除input的内容,但是不能清除div的内容。如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
相似问题
回答 1
回答 2