js属性
1.属性的操作方式
* 1、.表示的意思 * 元素.属性名 * 如果属性是单一属性,用点操作符是取不到的,而且还会报错 * 如果想要用点操作符获取带横杠的属性,那首先要把横杠去掉,然后把横杠后面的第一个字母大写 * 2、[] 表示的意思 * 如果属性中带横杠,用[]的方式去操作属性 * []既可以操作符合变量命名规则的属性,也可以操作不符合变量命名规则的属性
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <input type="button" id="btn" value="按钮" style="width: 50px; height: 50px; background: #ff0000;font-size: 20px" /> <script> var btn=document.getElementById('btn'); btn.onclick=function(){ //alert(btn.type); //button //console.log(btn.id); //btn console.log(btn.value); //按钮 btn.value='小按钮'; //修改属性 //console.log(btn.style.font-size); console.log(btn.style['font-size']); //20px console.log(btn.style.fontSize); console.log(btn['id']); //btn /* * font-size 这个属性不能用点直接去获取,因为js不认识横杠 * * */ } </script> </body> </html>
也就是说,如果属性不是符合命名规则的属性,可以使用[]来获取属性;当然,如果属性符合命名规则,也可以使用[]来获取属性;
2.常用属性
2.1 value
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script> /* * * value * 表单的值 * * */ window.onload= function () { var btn=document.getElementById('btn'); var text=document.getElementById('text'); console.log(btn.value); //按钮 console.log(text.value); //这里是一段文字 text.value='kaven'; } </script> <input type="button" id="btn" value="按钮" /> <input type="text" name="text" id="text" value="这里是一段文字" /> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <input type="button" id="btn" value="按钮" style="width: 50px; height: 50px; background: #ff0000;font-size: 20px" /> <script> var btn=document.getElementById('btn'); btn.onclick=function(){ //alert(btn.type); //button //console.log(btn.id); //btn console.log(btn.value); //按钮 btn.value='小按钮'; //修改属性 //console.log(btn.style.font-size); console.log(btn.style['font-size']); //20px console.log(btn.style.fontSize); console.log(btn['id']); //btn /* * font-size 这个属性不能用点直接去获取,因为js不认识横杠 * * */ } </script> </body> </html>
2.2 innerHTML
* 在给innerHTML设置值的时候,如果这个值里面有html标签,那放到网页中,会把它解析成为一个真正的html标签 * 如果标签对当中有其他的标签,一样会拿得到
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script> window.onload= function () { var btn=document.getElementById('btn'); var box=document.getElementById('box'); btn.onclick= function () { console.log(box.innerHTML); //设置 box.innerHTML='<span>kaiven<span/>'; } }; </script> <input type="button" id="btn" value="按钮" /> <div id="box"><p>标题</p>这里是一段文字</div> </body> </html>
2.3 classname
* className * 注意:class是js中的一个保留字,它是不允许我们使用的 * 在获取class的时候,不能使用class,使用className
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div class="kaivon" id="kaivon"></div> <script> var kaivon=document.getElementById('kaivon'); //console.log(kaivon.class); //undefined console.log(kaivon.className); //kaiven </script> </body> </html>
2.4 href和src
* href 连接的地址 * src 图片的地址 * * href与src取到的是绝对地址,不是属性里的值 * 切记不要拿href与src取到的值去做判断
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script> window.onload= function () { var pic = document.getElementById('pic'); var link = document.getElementById('link'); console.log(pic.src); //http://localhost:63342/Python_Data_Analyse1/js%E5%AD%A6%E4%B9%A0/11.jpg console.log(link.href); //http://localhost:63342/Python_Data_Analyse1/js%E5%AD%A6%E4%B9%A0/%E5%B8%B8%E7%94%A8%E5%B1%9E%E6%80%A7href_src.html# } </script> <img id="pic" src="11.jpg"/> <a href="#" id="link">js</a> </body> </html>
3.属性操作例子
操作属性可以使用点或者[],使用点操作属性的时候,后面只能跟真正的属性名,不能跟变量名;使用[]操作属性的时候,里面可以放属性名称和变量名,如果放的是属性名,需要加引号,如果放的变量名,不需加引号;
如:box.style['width']=val;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style> #box{ width: 100px; height: 100px; background: #ff0000; } </style> <script> /* * 需求: * 点击按钮获取输入框里的属性名称与属性值,对div进行设置 * * 分析: * 1、获取输入框、按钮、box * 2、给按钮添加点击事件 * 3、获取到输入框里的内容 * 4、改变box的样式 * */ window.onload=function(){ var text1=document.getElementById('text1'); var text2=document.getElementById('text2'); var btn=document.getElementById('btn'); var box=document.getElementById('box'); btn.onclick=function(){ var name=text1.value; var val=text2.value; console.log(name,val); box.style[name]=val; }; }; </script> </head> <body> <input type="text" id="text1" value="" /> <input type="text" id="text2" value="" /> <input type="button" id="btn" value="按钮" /> <div id="box"></div> </body> </html>