JQuery语法



使用JQuery必须先导入jquery-X.X.X.js文件



jQuery中的选择器       $("选择器名称").函数名();



注意     $ 是jQuery的缩写,也就是说,选择器可以使用jQuery(":input")



 



jQuery   文档就绪函数



$(document).ready(function(){
    //jQuery代码
    console.log($(":input:disabled")),
});



 



简写文档就绪函数 $(function(){})



 



jQuery 与window.onload的区别



 



window.onload必须等待网页资源全部加载完成后,才能执行



文档就绪函数  只需等到网页DOM结构加载完成后,即可执行



window.onload在一个页面中只加载一次



文档就绪函数在一个页面中可以有n个



jQuery对象和js对象



使用$("")取到的节点为jQuery对象,只能调用jQuery方法,不能使用原生JS方法



$("#div1").click(function(){});正确



$("#div1").οnclick=function(){};错误  使用jQuery调用原生JS



同理  使用getelement系列函数取到的为JS对象,也不能调用jQuery函数



jQuery对象和js对象的相互转换



jQuery对象转js对象 使用.get(index)或[index]选中度就是JS对象



$("div")[0].onclick(function(){});
$("div").get(0).onclick(function(){});



 



js对象转jQuery对象  使用$包裹JS对象



var div=document.getElementsByTagName("div");
$(div).click(function(){});



 



解决jquery多库冲突问题



页面中如果同时引入多个JS框架可能导致$冲突



解决方法



使用jQuery.noConflict();使jQuery放弃在全局使用$



使用jQuery关键字替代$  或者使用一个自执行函数



!function($){
//在自执行函数中,可以使用&替代jQuery
//除自执行函数外的其他区域,禁止jQuery使用$
}(jQuery);



 



 



 



css和属性操作



 



设置节点属性



$("#div1").attr("class","cls")



 



 



传入对象以键值对的形式同时设置多对属性



$("#div1").attr({
"class" :$("#div1").attr("class")+" cls1"
"name":"name1"
"style":"font-size:20px;color:red;" 
})



 



 



通过回调函数返回值,修改css的样式。



 



$("button:eq(0)").click(function(){
            var id = setInterval(function(){
                $("#div1").css({
                    "width":function(index,value){
                        var v = parseFloat(value) + 1;
                        if(v>600){
                            clearInterval(id);
                        }
                        return v+"px";
                    }
                });
            },10);
        });



 



 



 



取到节点属性



console.log($("#div1").attr("id"));



 



 



删除节点属性



$("#div1").removeAttr("class")



 



 



attr与prop一样,都可以对节点进行读取和设置



attr与prop的区别



在读取属性名=属性值的属性时,attr将返回属性值和undefined   prop将返回true或false



 



也就是说,attr要取到的属性,必须是在标签上已经写明的属性,否则返回undefined



console.log($("input:eq(0)").attr("disabled"))
console.log($("input:eq(0)").prop("disabled"))



 



 



 



在原有class的基础上新增class名    如果没有class属性,将自动添加



$("#div1").addClass("cls")



 



 



删除指定的class名称,其他没删除的class名依然保留     如果删空将只留下class属性



$("#div1").removeClass("cls")



 



 



切换class 如果有指定class就删除    如果没有就新增



$("button:eq(0)").click(function(){
$("#div1").toggle("div1")
})



 



 



.html取到或设置节点中的HTML代码



.text取到或设置节点中的文本



.val取到或设置节点中的value值



console.log($("#div1").html("<p>555</p>").html())
console.log($("#div1").text("<p>555</p>").text())
console.log($("input").val("<p>6666</p>").val())



 



.css给节点添加css样式 属于行级样式表权限



$("#div1").css("color","#008000")



 



 



同时给多个节点添加多对css样式



$("#div1").css(function(){
"color":"#008000"
"font-size":"20px"
})



 



取到或设置节点的宽高



$("#div1").width("400px")
$("#div1").height(400)



 



 



取到节点的宽度+padding  不包含border和margin



$("#div1").innerHeight()
$("#div1").ininnerWidth()



 



 



不传参数  表示宽高+padding +border



传入true  表示宽高+padding +border+margin



console.log($("#div1").outerHeight())
console.log($("#div1").outerWidth(true))



 



 



返回一个节点相对于浏览器左上角的偏移量,返回一个对象{top:20px left:20px}



console.log($("#div1").offset())



 



 



返回一个节点相对于父容器的偏移量



注意   ①使用此方法   要求父元素必须是定位元素  如果父容器不是定位元素,则依然是相对于浏览器左上角进行测量



②使用此方法   测量偏移时,将不考虑margin  而会将margin视为当前容器的一部分



console.log($("#div1").position())



 



 



 



scrollTOp设置或取到指定节点的竖直滚动条的位置



$("#div1").scrollTOp()



 



水平 滚动条的位置



$("#div1").scrollLeft()



 



 



each用于遍历jQuery中的对象数在回调函数中使用returnfalse相当于breakreturntrue相当于continue



$("#ul li").each(function(index,value){
console.log(index)
console.log($(value).text())



 



在回调函数中 this指向当前调用函数的节点对象



this是一个JS对象,如果要使用JQ对象,需使用$(this)



console.log(this)
$(this).text($(value).text()+"qqq")
})



 



 



.size()  .length   返回所查询数组的个数



console.log($("#ul li").size())
console.log($("#ul li").length)



 



 



.get()将jQuery对象,转为JS对象



传入index表示取出第几个,并转为JS对象



不传参数,便是将jQuery中的所有对象,转为JS对象



console.log($("#ul li").get())



 



 



$.each(arr、obj,function(){})



对传入的数组或对象进行遍历,可以是jQuery对象数组,也可以是JS中的数组和对象



$.each($("li"),function(index,value){
         console.log(index)
console.log(value)    })



 



数组映射



var arr=[1,2,3,4]
var newarr=$.map(arr,function(index,value){
return value+5; })
 
console.log(newarr)



 



 



检测一个值是否在数组中,返回下标,没有返回-1   第三个参数表示查找的起始下标



var arr=[1,2,3,4]
var is=$.Array(2,arr,3)
console.log(arr.indexOf(2,3))
console.log(is)



 



 



将选中的jQuery  DOM集合   恢复成数组,数组的每一个对象都是JS对象



console.log($("#ul li").toArray())



 



 



合并两个数组



var arr=$.merge( [0,1,2], [2,3,4] )
console.log(arr)



 



 



$.parseJSON()将一个JSON字符串转换成JSON对象



var str='{"":"","":"","":"","":"","":"","":""}'
console.log(str)
console.log($.parseJSON(str))
});



 



 



检测一个节点是否包含另一个节点



console.log($.contains($("#ul")[0],$("#li")[0]))
console.log($.contains($("#li")[0],$("#ul")[0]))