概念:jQuery=JavaScript+query,是辅助JavaScript开发的类库,可以非常容易的操作DOM对象,是目前世界上最流行的js库。
jQuery初体验:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
<script type="text/javascript">
//使用$()代替window.onload
$(function(){
//使用选择器获取按钮对象,随后绑定单击响应函数
$("#btnId").click(function(){
//弹出Hello
alert(‘Hello‘);
});
});
</script>
</head>
<body>
<button id="btnId">SayHello</button>
</body>
</html>
常见问题:
$ 是 jQuery 的核心函数,能完成 jQuery 的很多功能。$()就是调用$这个函数
传入参数为 [ 函数 ] 时:表示页面加载完成之后,执行此函数。相当于 window.onload = function(){}
$(function(){
alert("hello")
});
传入参数为 [ HTML 字符串 ] 时:会为我们创建这个 html 标签对象
$("<div>" +
" <span>div-span1</span>" +
" <span>div-span2</span>" +
"</div>").appendTo("body");//向body标签体中添加许多标签,注意一定要在body标签体被加载之后添加。
传入参数为 [ 选择器字符串 ] 时:会生成此选择器指定的jQuery对象。
传入参数为 [ DOM 对象 ] 时:会把这个 dom 对象转换为 jQuery 对象
DOM对象:通过getElementById()等方法查询出来的对象是DOM对象。
DOM 对象 Alert 出来的效果是:object HTML 标签名 Element
jQuery对象:通过 JQuery 提供的 API 创建的、通过 JQuery 包装的 Dom 对象都是jQuery对象。
jQuery 对象 Alert 出来的效果是:object Object
jQuery对象的本质:jQuery 对象是 dom 对象的数组 + jQuery 提供的一系列功能函数。
注意:jQuery 对象和 DOM对象的属性方法都是不通用的。
Dom 对象和 jQuery 对象互转
dom--> jQuery :$(DOM对象)即可
jQuery-->dom:先有jQuery对象,在通过数组的索引取出相应的DOM对象。jq.[index]或jq.get(index)
var $div = $("div");//生成jQuery对象
var firstDiv = $div[0];//取出DOM对象
var SecondDiv = $div.get(1);
基础选择器
$(“#id”); 根据 id 查询标签对象
$(“.class”); 根据类名查询标签对象
$(“tagName”); 根据标签名查询对象*: 选择所有的元素
selector1,selector2: 并集选择器,将两个选择器的结果合并返回
层级选择器
基本过滤器
:first 获取第一个元素
:last 获取最后的元素
:not(selector) 去除所有与给定选择器匹配的元素
:even 匹配所有索引值为偶数的元素
:odd 匹配所有索引值为奇数的元素
:eq(index) 匹配一个给定索引值的元素
:gt(index) 匹配所有大于给定索引值的元素
:lt(index) 匹配所有小于给定索引值的元素
:header 匹配如 h1, h2, h3 之类的标题元素
:animated 匹配所有正在执行动画效果的元素
//选择没有执行动画的最后一个div元素
$("div:not(:animated):last").css("background", "#bbffaa");
内容过滤器
:contains(text) 匹配包含给定文本的元素
:empty 匹配所有不包含子元素或者文本的空元素
:parent 匹配含有子元素或者文本的元素
:has(selector) 匹配含有选择器所匹配的元素的元素
//选择class为mini的div 元素
$("div:has(.mini)").css("background", "#bbffaa");
属性过滤器
[attribute]匹配包含给定属性的元素。
[attribute=value]匹配给定的属性是某个特定值的元素
[attribute!=value] 匹配所有不含有指定的属性,或者属性不等于特定值的元素。
[attribute^=value] 匹配给定的属性是以某些值开始的元素
[attribute$=value] 匹配给定的属性是以某些值结尾的元素
[attribute*=value] 匹配给定的属性包含某些值的元素
[attrSel1][attrSel2][attrSelN] 复合属性选择器,需要同时满足多个条件时使用。
//选取 含有 title 属性, 且title 属性值不等于 test 的 div 元素
$("div[title][title!=‘test‘]").css("background", "#bbffaa");
表单元素过滤器
:input 匹配所有input, textarea, select 和 button 元素
:text 匹配所有文本输入框
:password 匹配所有的密码输入框
:radio 匹配所有的单选框
:checkbox匹配所有的复选框
:submit 匹配所有提交按钮
:image 匹配所有 img 标签
:reset 匹配所有重置按钮
:button 匹配所有 input type=button或<button>按钮
:file 匹配所有 input type=file 文件上传
:hidden 匹配所有不可见元素,display:none 或 input type=hidden
:enabled 匹配所有可用元素
:disabled 匹配所有不可用元素
:checked 匹配所有选中的单选,复选,和下拉列表中选中的 option 标签对象
:selected 匹配下拉框被选中的所有option
var $selectedOptions = $(":checkbox > option : selected");//获取下拉框被选中的所有option
jquery元素筛选
$("#one").attr("abc","cde")
$("button").addClass("animated bounce")
传统方式:获取jq对象数组,通过for循环遍历。
jq对象.each(callback)
jq对象数组.each(function(index,element){}); index:就是元素在集合中的索引 element:就是集合中的每一个元素对象
回调函数
$("li").each(function (index,element){
if("上海"==$(element).html()){
//如果当前function返回为false,则结束循环(break)。
//如果返回为true,则结束本次循环,继续下次循环(continue)
return true;
}
alert(index+":"+$(element).html());
})
$.each(object, function(index,ele){ statement });
for(ele of jq对象数组)of:jquery3.0之后提供的方式
JS 的事件是 onclick, jQuery 的事件都去掉了 on,直接就是 click。
事件绑定
$( function(){} );和window.onload = function(){}的区别?
他们分别是在什么时候触发?
jQuery是浏览器的内核解析完页面的标签创建好 DOM 对象之后就会马上执行。
原生 js 的页面加载完成之后,除了要等浏览器内核解析完标签创建好 DOM 对象,还要等标签显示时需要的内容加载完成。
他们触发的顺序?
jQuery页面加载完成之后先执行
原生 js 的页面加载完成之后
他们执行的次数?
原生 js 的页面加载完成之后,只会执行最后一次的赋值函数。
jQuery 的页面加载完成之后是全部把注册的 function 函数,依次顺序全部执行。
事件的冒泡
事件的冒泡是指,父子元素同时监听同一个事件。当触发子元素的事件的时候,同一个事件也被传递到了父元素的事件里去响应。
如何阻止事件的冒泡呢?
在子元素事件函数体内,return false; 可以阻止事件的冒泡传递。
<script type="text/javascript">
$(function(){
$("#content").click(function (){
alert("div被点击了。。。")
});
$("span").click(function (){
alert("span被点击了。。。");
return false;
});
})
</script>
<body>
<div id="content">
外层div元素
<span>内层span元素</span>
外层div元素
</div>
<div id="msg"></div>
<br><br>
<a href="http://www.hao123.com">WWW.HAO123.COM</a>
</body>
增强jQuery的功能
$.fn.extend(object):增强通过Jquery获取的对象的功能 $("#id")
$.extend(object):增强JQeury对象自身的功能
$.extend({
max:function (a,b){
return a>b?a:b;
},
min:function (a,b){
return a<b?a:b;
}
});
//调用全局方法
var max = $.max(4,3);
//alert(max);
var min = $.min(1,2);
alert(min);
原文:https://www.cnblogs.com/yellowchives/p/15202779.html