jq控制div显示隐藏实现(jquery基础知识)

jq控制div显示隐藏实现(jquery基础知识)

jQuery 介绍

官网:http://jquery.com/

jQuery是一个快速的、小的、功能丰富的JavaScript库。它使HTML文档遍历和操作、事件处理、动画和Ajax等操作更加简单,易于使用的API在许多浏览器中起作用。结合了多功能性和可扩展性,jQuery改变了数百万人编写JavaScript的方式。

优势

轻量级

强大的选择器

出色的DOM操作

可靠的事件处理机制

出色的浏览器兼容性

链式操作方式

完善的Ajax

丰富的插件支持

完善的文档

开源

jQuery ready

ready是DOM结构绘制完毕后就执行,在JQ3.0以前ready在window.onload之前执行,JQ3.0后在window.onload之后执行。

$(document).ready(function () {

console.log(“ready”)

})

//ready简写

$(function () {

console.log(“ready”)

})

window.onload是等到页面内的所有元素加载完毕后和图片开始加载时才执行。

window.onload = function () {

console.log(“load”)

}

多库共存

防止jQuery和其他库冲突可以调用jQuery.noConflict()函数来将变量$的控制权移交给其他JavaScript库。

var JQ = jQuery.noConflict();

//执行jQuery ready

jQuery(function(){

console.log(“jQuery”)

})

//执行jQuery ready

JQ(function(){

console.log(“JQ”)

})

//下面代码报错

$(function(){

console.log(“$”)

})

jQuery 选择器

jQuery中的选择器完全继承了CSS的风格,支持CSS1到CSS3选择器。使用jQuery选择器可以非常简洁的获取DOM元素,也是jQuery对象,通过jQuery对象才可以使用jQuery的属性和方法。

//js原生获取元素

var d1 = document.getElementById(“d1”);

//jQuery获取元素

var $d1 = $(“#d1”);

CSS设置

//获取样式值

console.log($div.css(“backgroundColor”))

//设置样式链式操作方式

$div.css(“backgroundColor”,”red”)

.css(“width”,100)

.css(“height”,100)

//设置样JSON参数方式

$div.css({

backgroundColor:”blue”,

width:100,

height:100

})

事件处理事件绑定

$div.on(“click”,function () {

$(this).css(“background”,”red”);

})

$div.click(function(){

$(this).css(“background”,”red”);

})

移除事件

$div.off(“click”)

hover()

通过鼠标移进移除事件实现hover效果

$div.mouseenter(function () {//移进元素时触发

$div.css(“background”,”yellow”)

})

$div.mouseleave(function () {//离开元素时触发

$div.css(“background”,”red”)

})

JQ把鼠标移进移除事件封装到hover方法里面

$div.hover(function () {//移进元素时触发

$div.css(“background”,”yellow”)

},function () {//离开元素时触发

$div.css(“background”,”red”)

})

显示隐藏

show():显示hide():隐藏toggle():显示隐藏

结构

<button>显示/隐藏</button>

<div>这是Div</div>

var $btn = $(“button”);

var $div = $(“div”);

var bol = true;

$btn.on(“click”,function () {

if (bol) {

$div.hide();//隐藏

}else{

$div.show()//显示

}

bol = !bol;//取反

})

通过toggle方法实现控制DIV显示隐藏

var $btn = $(“button”);

var $div = $(“div”);

$btn.on(“click”,function () {

$div.toggle();//显示隐藏

})

CSS 类名设置

addClass():添加类名removeClass():移除类名toggleClass():添加移除类名

样式结构

<style type=”text/css”>

.d1{

width: 100px;

height: 100px;

background: red;

display: none;

}

.show{

display: block;

}

</style>

<button>显示/隐藏</button>

<div class=”d1 show”>这是Div</div>

var $btn = $(“button”);

var $div = $(“div”);

var bol = true;

$btn.on(“click”,function () {

if (bol) {

$div.removeClass(“show”);//移除类名

}else{

$div.addClass(“show”);//添加类名

}

bol = !bol;//取反

})

通过toggle方法实现添加移除类名

var $btn = $(“button”);

var $div = $(“div”);

$btn.on(“click”,function () {

$div.toggleClass(“show”);//添加移除类名

})

JQ对象和原生对象转换

JQ对象转原生

//通过JQ选择器获取JQ对象

var $div = $(“div”);

//通过JQ的get()方法获取第0个原生div对象

var div = $div.get(0);

//通过数组下标方式获取JQ对象里的第0个原生div对象

var div = $div[0];

原生对象转JQ

//获取原生对象

var div = document.querySelector(“div”);

//原生对象转JQ对象

var $div = $(div);

循环遍历JQ对象

eq():获取第N个jQuery对象each():循环遍历

结构

<ul>

<li>1</li>

<li>2</li>

<li>3</li>

<li>4</li>

<li>5</li>

<li>6</li>

<li>7</li>

<li>8</li>

<li>9</li>

<li>10</li>

</ul>

for循环遍历

var $li = $(‘li’);

for (var i = 0; i < $li.length; i ) {

if (i%2==0) {

$li.eq(i).css(“background”,”red”)

}else{

$li.eq(i).css(“background”,”blue”)

}

}

JQ的each方法遍历

var $li = $(‘li’);

$li.each(function (i) {

if (i%2==0) {

$(this).css(“background”,”red”)

}else{

$(this).css(“background”,”red”)

}

})

查找元素的索引值

index():查找元素的索引值

结构

<ul>

<li><div class=”d1″>1</div></li>

<li><div class=”d1″>2</div></li>

<li><div class=”d1″>3</div></li>

<li><div class=”d1″>4</div></li>

<li><div class=”d1″>5</div></li>

</ul>

获取li在同级li中的索引位置。

var $li = $(“li”);

$li.on(“click”,function () {

console.log($(this).index());//输出索引位置

})

获取div在选择器的”div”中的索引位置。

var $div = $(“div”);

$div.on(“click”,function () {

console.log($(this).index(“div”));//输出索引位置

})

HTML代码/文本/值

html():获取或设置元素的html内容

//JQ方法

$div.html(“”)

//对应的原生方法

div.innerHTML = “”;

text():获取或设元素的内容

//JQ方法

$div.text(“”)

//对应的原生方法

div.innerText = “”;

val() 获取或设置元素的value属性值

//JQ方法

$input.val(“”)

//对应的原生方法

input.value = “”;

位置

offset():获取匹配元素在当前视口的相对偏移。

console.log($div.offset().top)

console.log($div.offset().left)

position():获取匹配元素在当前样式设置的定位left和top值

console.log($div.position().top)

console.log($div.position().left)

scrollTop():获取元素上下滚动条的位置。scrollLeft():获取元素左右滚动条的位置。

获取

console.log($(window).scrollTop())

console.log($(window).scrollLeft())

设置

console.log($(window).scrollTop(100))

console.log($(window).scrollLeft(100))

尺寸

heigh():获取元素样式(height)的值

width():获取元素样式(width)的值

innerHeight():获取元素的高(不包括边框)

innerWidth():获取元素的宽(不包括边框)

outerHeight():获取元素的高(包括边框)

outerWidth():获取元素的宽(包括边框)

样式结构

<style type=”text/css”>

div{

background: red;

width: 100px;

height: 100px;

padding:10px;

border: 5px solid black;

}

</style>

<div></div>

JQ代码

console.log($div.width());//输出100

console.log($div.height());//输出100

console.log($div.innerWidth());//输出120

console.log($div.innerHeight());//输出120

console.log($div.outerWidth());//输出130

console.log($div.outerWidth());//输出130

发表评论

登录后才能评论