前端的那些事之Jquery篇模块的学习

Jquery模块的学习

-## 核心模块
    - $()	用来通过选择器检索dom对象(参考代码)

   1. 尽量减少操作dom的检索范围
    var $demo = $(".demo");
    $demo.html().children(".my-div");
    2.可以创建元素,创建以后没有在dom树里
    $demo.html().children(".my-div");
    $(document.body).append($div);
    3.入口涵数
    $(function(){}) 
    $(document).ready(function(){
    });
    jQuery(function(){

    });
  • each() 用来迭代数组、对象、Jquery对象 var $divs = $(".my-div"); var contentx = []; 1//迭代dom对象公有的方法 $.each($divs,function(){ contentx.push(this.innerHTML); }); //或者私有方法 $divs.each(function(){ // contentx.push(this.innerHTML); // }); 2.数组的遍历 $.each(contentx,function(i,o){ console.log(o); }); 3.对象的遍历 var star = { // name : "star", // sex : '男', // height : 188 // }; $.each(star,function(key,value){ // console.log(key+":"+value); // });
  • index() 用来获得当前代理了一个dom元素的代理对象,dom元素所在同级别dom中的索引 ```

<div class="my-div">my div 1</div> <div id="test" class="my-div">my div 2</div> <div class="my-div">my div 3</div> <script> alert($("#test").index()); </script> ``` - data() 用来缓存内存中的原生dom对象的某个属性 ``` $("#test").data("my-prop","123");//在内存中创建了my-prop属性且值等于123,但页面中没有显示 alert($("#test").data("my-prop"));//获取myprop的值:123 实现的原理如下: var myJquery = function(id){ var dom = document.getElementById(id); dom.data = function(key,value){ if(arguments.length==1){ return this[key]; }else{ this[key] = value; } } return dom; } ``` - extend() 用来扩展第一个对象的功能 ``` var star = { name : "star", sex : '男', height : 188 }; var action1 = { run : function(){}, work : function(){}, eat : function(){} }; var action2 = { jump : function(){}, read : function(){}, write : function(){} }; //$.extend(star,action1,action2);//star继承了action1和action2的功能 实现原理如下: var myJquery = {}; myJquery.extend = function(target){ for(var i=1;i<arguments.length;i++){ var ext = arguments[i]; for(var prop in ext){ target[prop] = ext[prop]; } } } myJquery.extend(star,action1,action2); console.log(star); ``` ## 选择器 - $(selector) 所有css(css3)的语法实现 - css(css3)不认识的(通常都是伪类语法) ## 属性 - attr() 就是用来操作标签的属性:标签属性、自定义标签属性... - revmoeAttr() - prop() 就是用来操作标签的状态:比如checked、selected、disabled、readonly..一般为boolean值 - removeProp() ``` <form> <button disabled>button</button> <input readonly> <input type="checkbox" checked> </form> $("#btn1").attr("disabled","disabled"); $("#btn2").prop("disabled",true); ``` ## 样式(位置和尺寸) - addClass() 给目标对象添加类样式 优先级高 - 用jquery操作dom样式的时候,尽量使用addClass,便于维护,显示和代码分离 ``` .myButton{ padding:10px 20px; font-family: Arial,"Microsoft Yahei"; margin:5px; border-radius: 5px; } $("button").addClass("myButton"); ``` - css() 给目标对象添加行内样式 - 当css样式属性的值是变量或者是动态计算的,我们只能用css ``` $("button").css({ // padding:"10px 20px", // color:"#abcdef", // "font-family":'Arial,"Microsoft Yahei"', // margin:"5px", // "border-radius": "5px", // border:"3px solid #abcdef" // }); ``` - width()获取元素的宽度 - height()获取元素的高度 - offset() 包含了top和left位置的对象,jquery动态帮你计算好了的当前目标dom在浏览器页面中的位置 - position() 指的是它相对于参照dom的位置 实现一个让盒子垂直居中的方法 ``` #panel{ width: 500px; height: 300px; background-color: pink; } <script> $(function(){

            function center(){
		 	var $panel = $("#panel");
			$panel.offset({left:$(document.body).width()/2-         $panel.width()/2,top:$(document.body).height()/2-$panel.height()/2});
		 }
		 center();
	 window.onresize = function(){
		 	center();
	 }
                
    });
    </script>
## 文档处理
- 无论你想如何操作文档,jquery都有对应的方法
- wrap()相当于在元素外边嵌套一个元素,动态生成一个元素
- clone()深度克隆

wrap()的用法

<style> div.outer{ position: relative; } #wrap{ font-family: Arial,"Microsoft Yahei"; color: red; border: 1px solid red; padding:5px 10px; background-color: yellow; border-radius: 3px; display: inline; position: absolute; top: 50%; left: 50%; } </style>

<html> <div id="wrap">this is wrap text</div> </html> <script> $(function(){ $("#wrap").wrap("<div class='outer'></div>"); $("p").wrapInner("<b>this is b tag</b>");

</srcipt>```

clone()的简单用户
<html>
        <table id="scoreTable" border="1">
		<tr>
			<th>学号</th>
			<th>姓名</th>
			<th>成绩</th>
		</tr>
		<tr class="template" style="display: none;" onclick="alert(1);">
			<td>id</td>
			<td>name</td>
			<td>score</td>
		</tr>
	</table>
</html>
<script>
    $(function(){
        var data = [{id:1,name:"star",score:90}
						,{id:2,name:"danny",score:91}
						,{id:3,name:"jason",score:92}
						,{id:4,name:"ricye",score:93}];
			var $scoreTable = $("#scoreTable");
			var $template = $scoreTable.find(".template");
			$.each(data,function(i,o){
				var $clone = $template.clone().show().removeClass("template").appendTo($scoreTable);
				$clone.find("td:first").text(o.id).next().text(o.name).next().text(o.score);
			});
            
    })
</script>

ajax

  • $.ajax() 通用的ajax处理方法,能够处理一切服务器异步操作
  • $.get() 参数随着url带过去
  • $.post() 参数隐士的方式带过去
  • $.getJSON() 明白ajax返回的数据一定是json格式的
  • $.load() 明白ajax返回的数据一定是html格式的,而且是要加载在当前dom里面的
  • 比如说自己实现一个window

转载于:https://my.oschina.net/yongxinke/blog/811459

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值