jQuery基础

目录:

  1. jQuery简介
  2. jQuery对象
  3. jQuery基本选择器
  4. jQuery筛选器
  5. jQuery操作标签
  6. jQuery登录信息校验实例
  7. jQuery自带的动画效果
  8. jQuery补充函数

jQuery简介

  • jQuery是一个轻量级的、兼容多浏览器的JavaScript库。
  • jQuery使用户能够更方便地处理HTML Document、Events、实现动画效果、方便地进行Ajax交互,能够极大地简化JavaScript编程。它的宗旨就是:“Write less, do more.“

jQuery能做什么

  • 查找标签
  • 修改标签属性及样式
  • ajax异步请求
  • 事件绑定

jQuery与原生js操作标签简易程度对比

var d1Ele = document.getElementsByTagName('div')[0];
d1Ele.style.color = 'red';

$('div').css('color','blue');

jQuery使用步骤

  • 必须先利用script标签src属性导入jquery文件或者使用cdn(内容分发网络)直接访问
  • 在按照jquery固定的语法结构操作即可($(选择器).action())

需要了解的是jquery类似于python里面的模块,模块在导入使用的时候是模块名前缀的方式,其实jquery也是如此jquery(),只是为了书写方便,将jquery直接以$代替了,两者等价。

回到目录

jQuery对象

jQuery对象就是通过jQuery包装DOM对象后产生的对象。jQuery对象是 jQuery独有的。如果一个对象是 jQuery对象,那么它就可以使用jQuery里的方法:例如$(“#i1”).html()。

一个约定,我们在声明一个jQuery对象变量的时候在变量名前面加上$,例如:

var $variable = jQuery对像
var variable = DOM对象
$variable[0]//jQuery对象转成DOM对象
$(variable) //DOM对象转成jQuery对象

$("#i1").html();//jQuery对象可以使用jQuery的方法
$("#i1")[0].innerHTML;// DOM对象使用DOM的方法

jQuery基本选择器

id选择器:

$("#id")

标签选择器:

$("tagName")

class选择器:

$(".className")

配合使用:

$("div.c1")  // 找到有c1 class类的div标签

所有元素选择器:

$("*")

组合选择器:

$("#id, .className, tagName")

层级选择器:

x和y可以为任意选择器

$("x y");// x的所有后代y(子子孙孙)
$("x > y");// x的所有儿子y(儿子)
$("x + y")// 找到所有紧挨在x后面的y
$("x ~ y")// x之后所有的兄弟y

回到目录

jQuery筛选器

  • 表单筛选器

    # 针对表单内的标签
    $('input[type="text"]')
    # 简化写法
    $(':text')
    
    # 找到所有被选中的checkbox
    $(':checkbox')  # 注意select框中默认selected标签也会被找到
    $('input:checkbox')
    
  • 筛选器方法

    # 避免$('input:first')太麻烦
    $('input').first()
    
    $("#id").next()
    $("#id").nextAll()
    $("#id").nextUntil("#i2")
    
    $("#id").prev()
    $("#id").prevAll()
    $("#id").prevUntil("#i2")
    
    $("#id").parent()
    $("#id").parents()  // 查找当前元素的所有的父辈元素
    $("#id").parentsUntil() // 查找当前元素的所有的父辈元素,直到遇到匹配的那个元素为止。
    
    $("#id").children();// 儿子们
    $("#id").siblings();// 兄弟们
    

回到目录

jQuery操作标签

  • 样式操作
addClass();// 添加指定的CSS类名。
removeClass();// 移除指定的CSS类名。
hasClass();// 判断样式存不存在
toggleClass();// 切换CSS类名,如果有就移除,如果没有就添加。
示例:开关灯和模态框

CSS

css("color","red")//DOM操作:tag.style.color="red"

示例:

$("p").css("color", "red"); //将所有p标签的字体设置为红色
  • jquery链式操作
# 一行代码实现第一个p变红,第二个p变绿
<div>
	<p>p1</p>
	<p>p2</p>
</div>

$('div>p').first().addclass('c1').next().addclass('c2');
  • 位置操作
offset()// 获取匹配元素在当前窗口的相对偏移或设置元素位置
position()// 获取匹配元素相对父元素的偏移
scrollTop()// 获取匹配元素相对滚动条顶部的偏移
scrollLeft()// 获取匹配元素相对滚动条左侧的偏移

.offset()方法允许我们检索一个元素相对于文档(document)的当前位置。和 .position()的差别在于: .position()是相对于相对于父级元素的位移。
在这里插入图片描述

  • 文本操作

HTML代码:

html()// 取得第一个匹配元素的html内容
html(val)// 设置所有匹配元素的html内容

文本值:

text()// 取得所有匹配元素的内容
text(val)// 设置所有匹配元素的内容

值:

val()// 取得第一个匹配元素的当前值
val(val)// 设置所有匹配元素的值
val([val1, val2])// 设置多选的checkbox、多选select的值

例如:

<input type="checkbox" value="basketball" name="hobby">篮球
<input type="checkbox" value="football" name="hobby">足球

<select multiple id="s1">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>

设置值:

$("[name='hobby']").val(['basketball', 'football']);
$("#s1").val(["1", "2"])

示例:

获取被选中的checkbox或radio的值:

<label for="c1"></label>
<input name="gender" id="c1" type="radio" value="0">
<label for="c2"></label>
<input name="gender" id="c2" type="radio" value="1">

可以使用:

$("input[name='gender']:checked").val()

回到目录

自定义登陆校验

<form action="">
  <div>
    <label for="input-name">用户名</label>
    <input type="text" id="input-name" name="name">
    <span class="error"></span>
  </div>
  <div>
    <label for="input-password">密码</label>
    <input type="password" id="input-password" name="password">
    <span class="error"></span>
  </div>
  <div>
    <input type="button" id="btn" value="提交">
  </div>
</form>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script>
  $("#btn").click(function () {
    var username = $("#input-name").val();
    var password = $("#input-password").val();

    if (username.length === 0) {
      $("#input-name").siblings(".error").text("用户名不能为空");
    }
    if (password.length === 0) {
      $("#input-password").siblings(".error").text("密码不能为空");
    }
  })
</script>
<!--js代码取消默认事件的方式-->
return false
  • 属性操作
// 获取文本属性
$('#d1').attr('s1')  // 获取属性值
$('#d1').attr('s1','haha')  // 设置属性值
$('#d1').attr({'num':50,'taidi':'gay'})  // 设置多个属性
$('#d1').removeAttr('taidi')  // 删除一个属性


// 获取check与radio标签的checked属性
$('#i1').prop('checked')
$('#i1').prop('checked',true)

在这里插入图片描述
在这里插入图片描述

  • 文档处理
// 标签内部尾部追加元素
$('#d1').append(pEle)
$pEle.appendTo($('#d1'))

// 标签内部头部添加元素
$('#d1').prepend(pEle)
$pEle.prependTo($('#d1'))

// 标签外部下面添加元素
$(A).after(B)// 把B放到A的后面
$(A).insertAfter(B)// 把A放到B的后面

// 标签外部上面添加元素
$(A).before(B)// 把B放到A的前面
$(A).insertBefore(B)// 把A放到B的前面

// 替换标签
replaceWith()  // 什么被什么替换
replaceAll()  // 拿什么替换什么



// this参数补充知识
// 克隆事例
<button id="b2">屠龙宝刀,点击就送</button>
// clone方法加参数true,克隆标签并且克隆标签带的事件
  $("#b2").on("click", function () {
    $(this).clone(true).insertAfter(this);  // true参数
  });

在这里插入图片描述

回到目录

jQuery事件绑定

// hover事件
$('p').hover(  // 写两个函数一个表示鼠标移进去,另一个标示鼠标移出来
  function () {
    alert('来啦,老弟')
  },
  function () {
    alert('慢走哦~')
  }
)
// input实时监听
    $('#i1').on('input',function () {
        console.log($(this).val())
    });
// focus/blur 其他同理js事件

// 取消标签默认的事件(两种方式)
return false
$('input').click(function (e) {
        alert(123);
        // return false
        e.preventDefault();
    });



// 事件冒泡
div>p>span  // 三者均绑定点击事件

$("span").click(function (e) {
        alert("span");
        e.stopPropagation();  // 阻止事件冒泡
    });

// 事件委托
<button>按钮</button>
<script src="jQuery-3.3.1.js"></script>
<script>
    $('body').on('click','button',function () {
        alert(123)
    })
</script>

jQuery自带的动画效果

$('img').hide(5000)
$('img').show(5000)

$('img').slideUp(5000)
$('img').slideDown(5000)


$('img').fadeIn(5000)
$('img').fadeOut(5000)
$('img').fadeTo(5000,0.4)

jQuery_each循环

$.each(array,function(index){
  console.log(array[index])
})

$.each(array,function(){
  console.log(this);
})

// 支持简写
$divEles.each(function(){
  console.log(this)  // 标签对象
})

在这里插入图片描述
在这里插入图片描述

data方法

$("div").data("k",100);//给所有div标签都保存一个名为k,值为100
$("div").data("k");//返回第一个div标签中保存的"k"的值
$("div").removeData("k");  //移除元素上存放k对应的数据

用data存值,对用户隐藏
在这里插入图片描述

回到目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值