JQuery

OverView

导包

<script src="https://code.jquery.com/jquery-3.1.1.js"></script>

jquery加载DOM元素

$(function() {...})
$(document).ready(function () {...})

快速开始

// 原生js写法
window.onload = function(){
  document.getElementById("start").innerHTML= "Go!";
}

// jQuery写法
$(function() {
    $("#start").html("Go");
});

// jQuery写法2
$(document).ready(function () {
    $("#start").html("Go");
});

语法Syntax

选择器

$("div")
$("#id")
$(".class")
$(div p)
$(div, p)
$(div > p)
$(div ~ p)
$(this)

jquery操作HTML

  • innerHTML
// 获取
$(this).html()
$(this).text()

// 修改
$(this).html('test')
  • class
$(this).addClass('active')
$(this).removeClass('active')
$(this).toggleClass('active')
  • attr等属性
// 获取
$(this).attr("href")
// 修改
$(this).attr("href", "https://www.baidu.com")
$("img").attr("src", "cat.png");

// 删除
$("#test").removeAttr("border");
  • input的value
$(this).val()

jquery操作CSS

$(this).css('color', 'red')
$("div").css({
  "color": "red",
  "font-size": "200%"
})
  • width()、innerWidth()、outerWidth()、height()、...
innerWidth() = padding*2 + width
outerWidth() = padding*2 + width + border-width*2
$("div").width(100);

jquery操作js

  • 遍历
$('.link').each(function() {...})
  • 显示隐藏
$(this).show()
$(this).hide()

DOM

// Add text() Content
$(this).append(`...`)
$(this).prepend("Woo, ")  // Woo, ...

// Add html() Content
$(this).after("bye")  // ... bye
$(this).before("hello") //hello ...
$("selector").parent()
$("selector").parents()
$("selector").children()
$("selector").siblings()
$("selector").next()/nextAll()
$("selector").prev()/prevAll()
$("selector").eq(index)
$("div").parents().css("border", "2px solid red")
$("p").eq(2).remove()
$("selector").empty()

Events

Methods

//Mouse Events
$("selector").click(function() {})		  //单击
dbclick		  //双击
trigger
mouseenter    //鼠标进入
mouseleave    //鼠标离开
mouseover     //鼠标悬浮

//KeyBoard Events
keydown
keyup

//Form Events
submit
change
focus
blur

//Document Events
ready
resize
scroll

Event

event.pageX
event.pageY
event.type
event.which
event.data
event.target
event.preventDefault()
event.syopPropagation()

click

document.getElementById("demo").onclick = function() {...}
//方式一
$("#demo").click(function() {...});
//方式二
$("#demo").on("click", function() {
	...;
	$("#demo").off("click");
});
//点击切换
$("demo").trigger("click");

keydown

<input type="text" id="name" />
<div id="msg"></div>

$("#name").keydown(function() {
	$("#msg").html($("#name").val());
});

event

$("#demo").click(function(event) {
	alert(event.pageX);
	event.preventDefault();
});

For Example

HTML

<!DOCTYPE html>
<html>
    <head>
        <title>My To-Do List</title>
        <script src="https://code.jquery.com/jquery-3.1.1.js"></script>
    </head>
    <body>
        <h1>My To-Do List</h1>
        <input type="text" placeholder="New item" />
        <button id="add">Add</button>
        <ol id="mylist"></ol>
    </body>
</html>

CSS

h1 {
    color: #1abc9c;
}
.rem {
    margin-left: 5px;
    background-color: white;
    color: red;
    border: none;
    cursor: pointer;
}

JS

$(function() {
    $("#add").on("click", function() {
        var val = $("input").val();
        if(val !== '') {
            var elem = $("<li></li>").text(val);
            $(elem).append("<button class='rem'>X</button>");
            $("#mylist").append(elem);
            $("input").val("");
            $(".rem").on("click", function() {
                $(this).parent().remove();
            });
        }
    });
});

Effects

toggle()			= hide() + show()
toggle(500)
fadeToggle(500)     = fadeIn() + fadeOut()  //fadeto(0)
sildeToggle(500)    = slideUp() + slideDown()
sildeDown(500)

animate({key: value}, 1000)

toggle

$(function() {
	$("p").click(function() {
		$("div).sildeToggle(500);
	});
});

animate

$("div").animate({
	width: "250px", //-=250px
	height: "250px"	//+=250px
}, 1000)

For Example

<div class="menu">
	<div id="item">Dropdown</div>
	<div id="submenu">
		<a href="#">Link 1</a>
		<a href="#">Link 2</a>
		<a href="#">Link 3</a>
	</div>
</div>
$(function() {
	$("#item").click(function() {
		$("#submenu").slideToggle(500);
	});
});