JQuery笔记
JQuery和JS入口函数的区别
获取dom元素
window
.onload = function () {
console
.log(document
.querySelector("img"));
};
$(document
).ready(function () {
console
.log($("img")[0]);
});
获取图片width
window
.onload = function () {
console
.log(document
.querySelector("img").width
);
};
$(document
).ready(function () {
console
.log($("img").width());
});
js可以获取到,JQuery获取不到
原生JS和JQuery入口元素的加载模式不同
原生JS会等到DOM元素加载完毕,并且图片也加载完毕才会执行JQuery会等到DOM元素加载完毕,但不会等到图片也加载完毕就会执行
window
.onload = function () {
alert("1");
};
window
.onload = function () {
alert("2");
};
$(document
).ready(function () {
alert("3");
});
$(document
).ready(function () {
alert("4");
});
原生JS如果编写了多个入口函数,后面编写的会覆盖前面编写的JQuery中编写多个入口函数,后面的不会覆盖前面的
JQuery入口函数多种写法
$(document
).ready(function () {
console
.log("1");
});
jQuery(document
).ready(function () {
console
.log("2");
});
$(function () {
console
.log("3");
});
jQuery(function () {
console
.log("4");
});
JQuery的核心函数
$(function () {
console
.log($("img")[0]);
console
.log($("#box01"));
console
.log($("<p>我是段落</p>"));
var span
= document
.querySelector("span");
console
.log($(span
));
});
静态方法和实例方法
$(function () {
function function01() { function01
.staticMethod = function () { alert("static");
}
function01
.staticMethod();
function01
.prototype
.instanceMethod = function () {
alert("instance");
}
var a
= new function01();
a
.instanceMethod();
});
静态方法each方法
$(function () {
var arr
= [1, 3, 5, 7, 9];
arr
.forEach(function (value
, index
) {
console
.log(value
+ ":" + index
);
});
$
.each(arr
, function (index
, value
) {
console
.log(value
+ ":" + index
);
});
});
map方法
$(function () {
var arr
= [1, 3, 5, 7, 9];
arr
.map(function (value
, index
, array
) {
console
.log(value
, index
, array
);
});
$
.map(arr
, function (value
, index
) {
console
.log(value
, index
);
})
});
JQuery的map和each区别?
each默认返回值就是遍历的对象
map默认返回值是空数组
each不支持在回调函数中对遍历的数组进行处理
map可以在回调函数的返回值中处理遍历的数组
其他静态方法
var str
=" str ";
console
.log(str
);
var res
=$
.trim(str
);
console
.log(res
);
console
.log($
.isWindow(window
));
console
.log($
.isArray(str
));
静态方法holdReady
暂停入口函数
$.holdReady(true)
false:恢复入口函数
内容选择器
console
.log($("div:empty"));
console
.log($("div:parent"));
console
.log($("div:contains('div01')"));
console
.log($("div:has('span')"));
属性和属性节点
原生JS
function Person() {
}
var person
= new Person();
person
.name
= "jack";
person
["age"] = 12;
console
.log(person
.name
);
console
.log(person
.age
);
$(".div01")[0].setAttribute("name", "haha");
console
.log($(".div01")[0].getAttribute("name"));
JQuery
$(".div01").attr("name", "haha");
console
.log($(".div01").attr("name"));
$(".div01").removeAttr("name class");
prop和removeProp
$("div").eq(1).prop("demo","haha");
console
.log($("div").eq(1).prop("demo"));
$("div").removeProp("demo");
console
.log($("div").eq(1).prop("demo"));
$("div").eq(1).prop("class","haha");
console
.log($("input").prop("checked"))
console
.log($("input").attr("checked"))
操作类
<style
>
.red
{
background
-color
: red
;
}
.border
{
border
: 1px solid #
000;
}
div
{
height
: 100px
;
width
: 100px
;
}
</style
>
<script
>
$(function () {
var btn01
= $("button")[0];
btn01
.addEventListener("click", function () {
$("div").addClass("red border")
});
var btn02
= $("button")[1];
btn02
.addEventListener("click", function () {
$("div").removeClass("red border")
});
var btn03
= $("button")[2];
btn03
.addEventListener("click", function () {
$("div").toggleClass("red border")
});
});
</script
>
</head
>
<body
>
<button
>添加
</button
>
<button
>删除
</button
>
<button
>切换
</button
>
<div
></div
>
</body
>
文本值
$("div").eq(0).html("我是普通文本呀");
$("div").eq(1).html("<p>我是p标签</p>");
console
.log($("div").eq(0).html());
console
.log($("div").eq(1).html());
$("div").eq(0).text("我是普通文本呀");
$("div").eq(1).text("<p>我是p标签</p>");
$("input").eq(0).val("我是普通文本呀");
$("input").eq(1).val("<p>我是p标签</p>");
console
.log($("input").eq(1).val());
操作样式
$("div").css({
width
: "100px",
height
: "100px",
backgroundColor
: "red"
});
console
.log($("div").css("width"));
位置
console
.log($("div").eq(0).width());
console
.log($("div").eq(0).offset().left
);
console
.log($("div").eq(0).position().left
);
scroll滚动
window
.addEventListener("scroll", function () {
console
.log($(window
).scrollTop());
});
$("textarea")[0].addEventListener("scroll", function () {
console
.log($("textarea").scrollTop(100));
});
事件绑定
$("button").eq(0).click(function(){
alert("click");
});
$("button").eq(0).mouseenter(function(){
alert("mouseenter");
});
$("button").eq(0).on("click",function(){
alert("click");
});
$("button").eq(0).mouseenter(function(){
alert("mouseenter");
});
事件移除
function clickEvent(){
alert("click");
}
function mouseenterEvent(){
alert("mouseenter");
}
$("button").eq(0).click(clickEvent
);
$("button").eq(0).mouseenter(mouseenterEvent
);
$("button").off("mouseenter");
$("button").off("mouseenter",click
);
事件冒泡和默认行为
$(".son").click(function (event
) {
alert("son");
event
.stopPropagation();
});
$(".father").click(function () {
alert("father");
});
$("a").click(function(event
){
event
.preventDefault();
})
事件自动触发
$(".father").click(function () {
alert("father");
});
$(".father").trigger("click");
$(".father").triggerHandler("click");
事件委托
$("button").click(function(){
$("ul").append("<li>n个小li</li>")
});
$("ul").delegate("li","click",function(){
console
.log($(this).html());
});
节点
添加
var $li
= $("<li></li>");
删除
替换
var $span
=$("<span></span>")
复制
var $span
= $("<span></span>");
var shallow
= $("li:first").clone(false);
console
.log(shallow
);
var deep
= $("li:first").clone(true);
console
.log(shallow
);