<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>1.属性与自定义属性操作:attr() 和removeattr()</title> </head> <body> <img src="image/001.jpg" width="300" alt="美女" title="明星" id="pic" data-nation="中国"> </body> </html> <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"> </script> <script type="text/javascript"> //预备知识:读取器,设置器 //1.有一些函数,可以根据参数的数量不同,执行不周的功能,返回不同的值,类似于功能重载 //2.传入一个参数,读取操作getter,返回该参数的当前值,叫读取器/获得器 //3.传入二个参数执行赋值操作setter,修改当前参数的值,叫:设置器/修改器 //4.这种根据参数个数决定执行操作类型的方法,在JQERY中非常多,大家要留意 //1.attr() :元素属性的获取与设置 //必须传参 //var res=${'img'}.attr() //单参数为获取:当前属性的值 //var res=$('#pic').attr('src') //双参数为获取,第一个是属性名,第二个是要设置的新值 $('#pic').attr('src','/image/002.jpg') $('#pic').attr('style','border-radius:50%;box-shadow:10px 10px 10px #333') //由此可见, attr()是典型的集读取器与设置器二合一的方法 // attr()可以获取到元素的自定义属性 //HTML5中可以通过data 前缀给标签用户自定义属性 var res=$('#pic').attr('data-nation') //attr()的属性值 还支持回调函数 //$('#pic').attr('width',function(){ return 100+50}) //注意:回调返回的数值类型,会自动转为字符类型再赋值给WIDTH属性 //var res=$('#pic').attr('width') //2.removeAttr():删除元素的属性 //删除图片的内联样式属性STYLE //$('#pic').removeAttr('style') //可以删除多个属性,多个属性之间用空格分开,返回当前元素的状态 var res=$('#pic').removeAttr('alt title data-nation') //在控制台查看运行结果 console.log(res) </script>
点击 "运行实例" 按钮查看在线实例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>2.元素故有属性的操作: prop()和removeProp()</title> </head> <body> <img src="image/001.jpg" width="300" alt="美女" title="明星" id="pic" data-nation="中国"> </body> </html> <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"> </script> <script type="text/javascript"> //1.Prop():仅能获取元素的固有属性 //获取固有属性:alt title var res=$('#pic').prop('alt') var res=$('#pic').prop('title') // 获取自定义属性data-nation, 返回undefined 获取不到 var res=$('#pic').prop('data-nation') //但是如果使用prop()进行动态设置自定义属性后,就可以正常获取到 var res=$('#pic').prop('data-nation','中国山东') //此时查看元素,发现自定义属性并未发生变化,所以这种设置对元素无影响 //此时再次查看自定义属性值,只是存在于当前脚本的一个临时数据 var res=$('#pic').prop('data-nation') //2.removeprop() // 这个方法与removeattr()有两点不同 //1.它不支持空格分隔的属性列表字符串,即每次只能删除一个属性 // var res=$('#pic')removeProp('alt data-nation') //2.它不支持删除原生属性,如果真要删除,要将值设为false可 //删除原生固有属性 // var res = $('#pic').removeProp('data-nation') //var res=$('#pic').removeProp('alt') //用removeAttr()删除原生属性alt, 删除成功 // var res=$('#pic').removeAttr('alt') //所以,如果要用removeProp()删除原生属性,大多数下将值设为 false即可 //最终由用户脚本自行处理 var res=$('#pic').prop('alt',false) var res=$('#pic').Prop('alt') console.log(res) </script>
点击 "运行实例" 按钮查看在线实例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>3.在元素中存储数据:data()</title> </head> <body> <img src="../image/001.jpg" width="200" alt="PHP中文网" title="朱老师" id="pic" data-job="php中文网朱老师"> </body> </html> <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"> </script> <script type="text/javascript"> //data(): 读取元素中以 data 开始的自定义数据,可以省略 data前缀 //var res=$('#pic').data('job') //如果用之前的attr()方法必须写出完整的属性名 //var res=$('#pic').attr('data-job') //data()也是一个自带读取器和设置器的方法 $('#pic').data('data-course','PHP程序开发课程') //如果是动态设置的自定义属性,省略前缀是获取不到的 //var res=$('#pic').data('course') //需要加上前缀 var res=$('#pic').data('data-course') //data()能获取元素上的原生属性吗?无法读取 var res=$('#pic').data('title') //但是支持动态设置title属性,仅限于脚本中使用,原始值并未发生变化 var res=$('#pic').data('title','hellow') //现在就可以在脚本中读取title的值,尽管这个值与原生的alt不同 var res=$('#pic').data('title') //同样, data()也有一个对应的 removeData()用来删除自定义或由它创建的属性 var res=$('#pic').removeData('title') var res=$('#pic').removeData('data-Course') var res=$('#pic').data('data-course') //原始标签自带的自定义属性中删除不了 var res=$('#pic').removeData('data-job') var res= $('#pic').data('job') console.log(res) </script>
点击 "运行实例" 按钮查看在线实例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>4.设置元素的类样式</title> <style type="text/css"> .circle{border-radius:50%;} .shadow{box-shadow:30px 30px 30px #888} </style> </head> <body> <img src="../image/001.jpg" width="300" id = "pic"> <!--<img src="../image/001.jpg" class="circle" width="300" id = "pic">--> </body> </html> <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"> </script> <script type="text/javascript"> /*设置元素的类样式 //1 设置元素标签的CLASS属性:应用的类样式,样式表中的 //2 直接设置标签元素的STYLE属性,内联样式 //1 AddClass()*/ //$('#pic').addClass('circle') //$('#pic').addClass('shadow') $('#pic').addClass('shadow circle') //2 .removeClass() //$('#pic').removeClass('circle') //$('#pic').removeClass('shadow') $('#pic').removeClass('shadow circle') //3 样式的自动切换:toggleClass //如果当前元素没有该样式,就自动添加,如果有,就自动删除 $('#pic').toggleClass('circle shadow') console.log(res) </script>
点击 "运行实例" 按钮查看在线实例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>5.设置内联样式 css()</title> <style type="text/css"> .box1{ width:300px; height:300px; background-color:wheat; position:relative; } .box2{ width:100px; height:100px; background-color:lightgreen; position:absolute; top:50px; left:100px; } </style> </head> <body> <img src="../image/001.jpg" style="width:200px;" border> <div class="box1"> <div class="box2"></div> </div> </body> </html> <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"> </script> <script type="text/javascript"> //css()和attr()类似, 自带getter/setter //1 设置样式: css(name [,value]) // var res = $('img').css('width',500) //var res=$('img').css('border-radius','10%') //var res= $('img').css('box-shadow','30px 30px 30px #888') // 链式操作 //var res = $('img').css('width',500) // .css('border-radius','10%') // .css('box-shadow','30px 30px 30px #888') // var res=$('img').css({'width':'200px','border-radius':'50%','box-shadow':'5px 5px 5px #888'}) var res=$('img').css({"width":"200px","border-radius":"50%","box-shadow":"5px 5px 5px #888"}) var res=$('img').css('width') var res=parseInt($('img').css('width')) res +=200 var res=parseInt($('img').css('width',res+'px')) // var res=$('img').css('width') //3.height(),width() //var res=$('img').width() var res=$('img').width(200) //var res=$('img').width('100px') //var res=$('img').width('+=200') //4.offset() var res = $('img').offset() var res = $('img').offset().top+'px' var res = $('img').offset().left+'px' //5.position var res= $('.box2').position() var res= $('.box2').position().left //6.scrollLeft()返回水平滚动条的位置 //scrollTop()返回垂直滚动条的位置 console.log(res) </script>
点击 "运行实例" 按钮查看在线实例