Jquery学习 -千锋学习

  • Jquery的优点
    1 强大的选择器
    2 出色的DOM封装 链式编程
    3 浏览器兼容
    4 动画功能
    两个变量 jQuery 和 $()

  • 选择器

  • 1基本选择器 2 特殊选择器
    语法:$(选择器) 返回值是满足条件的所有元素返回一个数组 id选择器也是返回一个数组,

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Ajax</title>
		<!--注意路径问题 ${pageContext.request.contextPath}/ -->
		<script src="../js/jquery-3.3.1.js"></script>
		
	</head>
	<body>
	<p>
		用户名:<input type="text" id="name" onblur="a1()" value="Rudy"/>
		<span id="userinfo"></span>
	</p>
	<p>
		密码:<input type="text" id="pwd" onblur="a2()" class="pwd" value="123456" />
		<span id="pwdinfo"></span>
	</p>
    
    <div id="1">1</div>
    <div id="2">2</div>
    <div id="3">3</div>
    <div id="4">4</div>
    <div id="5">5</div>
    <script type="text/javascript">
	
       标签选择器 console.log($("p")); //标签选择器
        id选择器console.log($("#name")[0]); //id选择器
        console.log($(".pwd")[0]); // class 选择器
        //特殊选择器
        console.log($("div:first")) //获取第一个
        console.log($("div:last"))  //获取最后一个个
        console.log($("div:eq(3)")) //获取指定位置
        console.log($("div:odd"))   //获取奇数位置
        console.log($("div:even"))  //获取偶数位置
        console.log($("div").first().next()) // 获取当前元素的下一个
        console.log($("div").eq(2).nextAll()) //获取当前元素之后的所有标签 
        console.log($("div").eq(2).nextAll("#5")) //获取当前元素之后的指定标签 
        console.log($("div").prev()) //获取当前元素的上一个
        console.log($("div").prevAll()) //获取当前元素的上面所有
        console.log($("div").prevAll("#p")) //获取当前元素的上面指定那个一个
		console.log($("#pwdinfo").parent())  //获取当元素的直接父元素 一个
        console.log($("#pwdinfo").parents()) //获取当前元素所有的长辈 body html是最后一个
        console.log($("#pwdinfo").parents("body"))  //获取当前元素的父元素中指定的那个
		console.log($("html").children()) //获取当前元素下的子元素所有 不包含孙子
        console.log($("html").children("body")) //获取当前元素下的指定子元素   
        console.log($("html").find("span")) //寻找当前元素的子元素中的指定那个 子孙都可以
 		console.log($("head").index())  //获取到当前元素在父元素中的索引位置
        console.log($("body").index())

    </script>
	</body>
</html>

  • jquery操作文本
    jquery操作文本内容,操作元素中的文本和超文本,属于jquery中的方法,dom不能调用
    1 html() 语法:元素集合.html() 获取该元素的超文本内容,以字符串形式返回,
    元素集合.html(“内容”) 设置该元素内超文本内容,
    2 text() 语法:元素集合.text() 获取到该元素下的所有文本内容 字符串返回
    元素集合.text(“内容”) 设置元素集合内元素的文本内容 完全覆盖
    3 val() 语法:元素集合.val() 获取元素集合内的value值 一般是用于表单中
    元素集合.val(“内容”) 设置元素集合内元素的value值 覆盖掉
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>e</title>
    <script type="text/javascript" src="../js/jquery-3.3.1.js"></script>
</head>
<body>
   <div>
       <p>我是一段超文本内容</p>
       <p>我是一段超文本内容</p>
       <p>我是一段超文本内容</p>
       <p>我是一段超文本内容</p>
       <p>我是一段超文本内容</p>
   </div>
   <input type="text" value="你好java"/>
   <script>
       console.log($("div").html()) //  获取  到该元素的超文本内容 就是标签也能获取到 只能获取到第一个元素标签
       $("div").html("<span>我是新来的</span>") //设置 该元素内超文本内容 替换掉已有的元素 有多少个标签就设置多少个
       console.log($("div").text()) //获取到该元素下所有的元素中的文本内容 
       $("div").text("发生改变")  //设置该元素下的文本内容 子元素会被覆盖掉 
        console.log($("input").val()) //获取到该元素下的value值 
        $("input").val("你好 python") //设置该元素下的value值
   </script>
</body>
</html>
  • jQuery操作元素类名
    1 addClass()方法 添加一个class属性的值
    2 removeClass() 删除元素class属性的值
    3 hasClass(“内容”) 判断有没有这个值
    4 toggleClass() 切换类名 有数据重复切换就是删除,如果没有就是添加或是追加
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Ajax</title>
		<!--注意路径问题 ${pageContext.request.contextPath}/ -->
		<script src="../js/jquery-3.3.1.js"></script>
		
	</head>
	<body>
        <div>你好 java</div>
        <script>
            $("div").addClass("java") //给当前标签添加一个class值
            $("div").removeClass("java") //删除元素的class值 
            console.log($("div").hasClass("java")) //判断这个元素的class名字有没有
            $("div").toggleClass("python") // 切换class值
        </script>
	</body>
</html>


  • Jquery 操作元素样式
    css()方法 语法:元素集合.css(“width”) 获取元素的某个值, 只能获取第一个
    元素集合.css(“width”,“100px”)设置元素的样式 设置是迭代全部设置成功
console.log($("div").css("width"))
console.log($("div").css("width":"50px"))
$("div").css({
width:100px
higth:200px
})
  • jquery 基础绑定事件
    1 on() 语法:元素集合.on(事件类型,事件处理函数) 隐式迭代 全部设置
    设置列表快捷键是ul>li*10{$}
    on(事件类型,选择器,事件处理函数)
    2 one() 绑定事件方法,只执行一次
    3 off()解除事件

  • jquery 事件函数
    jquery提供了将事件封装成函数直接调用,click(), mouseover()

 <script>
           $("li").click(function(){
               console.log("单击事件")
           })
        </script>
  • jquery 节点操作
    创建节点,删除节点,添加节点,替换节点,克隆节点
    1创建节点:$(选择器) 获取元素, $(html结构节点) 创建节点
    2添加到页面中 append() 语法:父元素.addend(子元素) 添加到父元素中的末尾
    appendTo() 语法:子元素.appendTo(父元素)
    prepend(子元素) 把子元素放到父元素内容的最前面
    prependTo() 语法:子元素.prependTo(父元素)
    after() 语法:存放元素.after(添加元素) 兄弟关系
    insertAfter() 语法:添加元素.insertAfter(存放元素) 兄弟关系
    before() 语法:存在元素.before(添加元素) 放到前面 兄弟关系
    insertBefore() 语法:添加到当前元素的前面 兄弟关系
    4 删除节点
    remove() 语法:元素集合.remove() 把自己从父元素集合中移除
    empty() 语法:把自己变成空标签
    5 替换节点
    replaceWith() 语法:存在节点.replaceWith(代替节点)
    replaceAll() 语法: 替换节点.replaceAll(被替换节点)
    6 克隆节点
    clone()
<script>
           //创建节点
           const div = $("<div>我是创建的一个div</div>")
           //添加一个节点
           $("ul").append(div)  //将一个节点放到指定的父节点中
           div.appendTo("body") //将一个元素添加到父元素中
 			$("ul").prepend(div)
            div.prependTo("body")
            $("ul").after(div) //添加一个元素标签是兄弟关系 
            div.insertAfter($("ul"))  //添加到一个存在元素的后面 兄弟关系
			$("ul").before(div) //放到当前元素标签的前面 兄弟关系
			$("ul").remove() //把自己从父元素集合中移除
            $("ul").empty() //将自己的变成空标签 后代元素都移除
			div.replaceAll($("li")) //把自己替换掉存在元素标签 
	 		$("div").removeAttr("class");
        </script>
  • jquery操作元素属性
    属性类型:原生属性 id class src type ,自定义属性 getAttribute()
    有三种可以操作属性的方法
    1 attr() 和 removeAttr() 语法:元素集合.attr(属性名) 获取到标签元素属性 removeAttr(属性名) 删除标签上的属性
    元素集合.attr(属性名 属性值) 设置标签属性值
    2 prop() 和removeProp() 语法:$(“xxx”).prop(属性名) 获取标签中的属性,但是attr方法设置的自定义属性他获取不到,
    $(“xxx”).prop(“属性名”,“属性值”) 设置标签中的属性,但是不会显示在标签上,而是存在这个元素上,
    removeProp() 删除元素属性,只能删除自己设置的属性,
    3 data() 和removeData()
<body>
       <div class="abc" id="box" hello="word">你好 Jquery</div>
        <script>
          console.log($("div").attr("id")); //获取标签的id属性
          console.log($("div").attr("class")); //获取标签的class属性
          $("div").attr("id","id"); //设置标签属性值
          $("div").attr("hello","java");//设置属性值
		  $("div").attr("a",100);
          console.log(typeof $("div").attr("a")); //attr设置的值都是字符串
        </script>
	</body>
  • 事件
    一个事件由3部分组成,事件主角:按钮或是标签,事件类型:是点击还是移动,事件过程:这个事件发生了什么?
  • onload事件
    在js中onload表示文档加载完成后,在执行这个事件,语法:window.onload = function(){} 只执行一次,
    在jquery中ready表示文档加载完后执行事件, 语法:$(document).ready(function(){}) 可以执行多次,
  • ready事件的四种写法
    $() = jquery() 是别名
$(document).ready(function(){});  //写法一
            jQuery(document).ready(function(){}) //写法二
            $(function(){}) //写法三
            jQuery(function(){}) //写法四
        
  • 鼠标事件
    注意jquery中的事件比js中的事件名字少了on,
    click:鼠标单击事件,
    mouseover:鼠标已入。
    mouseout: 鼠标移出,
    mouserdown:鼠标按下,
    mouseup: 鼠标松开,
    mousemove:鼠标移动,
    语法:jquery事件就是在里面添加一个匿名函数,

  • 键盘事件
    keydown:键盘按下,
    keyup:键盘松开,

  • 表单事件
    focus:获取焦点时触发事件,
    blur:失去焦点,

  • 绑定事件
    使用on()方法为存在元素绑定一个事件或是多个事件,在jquery中使用on方法和js中addEventListener()方法一样,
    语法:$().on(eventtype,function(){}) ;
    off():解除元素绑定事件,类似于js中removeEventListener()方法,语法: $().off(type),

  • 合成事件
    鼠标移入和鼠标移出可以配合使用,
    hover()方法可以一次性定义两个事件,语法:$().hover(fun1,fun2),参数fun1是鼠标移入事件,参数fun2是鼠标移出事件,
    $().hover(function(){},function(){}),

  • 一次事件
    one()方法为元素添加一个只触发一次事件,
    语法:$().one(Eventtype,function(){}),

  • this
    jQuery中的this是用在事件操作中,this始终指向触发当前事件的元素,
    $(“div”).click(function(){})中, $(this) = $(“div”),
    $(“p”).click(function(){})中, $(this) = $(“p”),

  • index()方法
    在jquery中可以使用index()方法来获取当前对象的索引值,
    语法:$().index(), 参数可以省略,相当于是当前元素在父元素中排行老几。注意从零开始,

  • 查找方法
    parent(): 查找当前的直接父类,
    parents();查找祖先元素,
    parentsUnitil():查找"指定范围的"祖先元素
    children():查找子元素,
    find():查找后代元素,
    prev():查找前面的相邻兄弟元素,
    prevAll():查找前面所有兄弟元素,
    next():查找后面相邻的兄弟元素,
    nextAll():查找后面所有的兄弟元素,
    siblings():查找所有兄弟元素,

  • 过滤方法
    作用就是:获取某个元素,和选择优势互补,
    hasClass():类名过滤, 根据元素的类名来过滤,语法:$().hasClass(“类名”),
    一般用于判断元素是否包含指定的类名,如果包含返回true,不包含返回false,
    eq():下标过滤 语法: $().eq(n), n是一个整数,负数是是倒数,eq()方法的下标是从0开始的,就是定位到一个元素,
    is():判断过滤,指的是根据某些条件进行判断,获取符合条件的元素,语法: $().is(selector)
    参数selector是一个选择器,is是判断当前选择的元素集合中是否存在符合条件的元素,存在返回true,
    $().is(":visible") //判断元素是否可见
    $().is(":checked") //判断单选框或是复选框是否被选中

not():反向过滤, 语法:$().not(select或fu) 当参数是一个选择器时表示过滤掉这个元素,选择其余元素,
has() ,filter():表达式过滤,

  • jquer效果
    隐藏和显示
$("#hide").click(function(){
	$("p").hide();//隐藏这个标签
	$("p").hide(1000);//一秒之内隐藏
})
$("#show").click(function(){
	$("p").show()://显示出来
})

  • 切换显示和隐藏
    通过toggle()方法来切换hide()和show()方法的效果,
<!DOCTYPE html>
<html>
<head>
<script src="/jquery/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
	$(function(){
		$("button").click(function(){
		$("p").toggle(1000);//单击隐藏或是展示
		})
	})
</script>
</head>
<body>
<button type="button">切换</button>
<p>这是一个段落。</p>
<p>这是另一个段落。</p>
</body>
</html>

  • jquery遍历
    用于根据元素之间的关系来查找html元素标签,标签之间的关系是:祖先,兄弟,后代,

  • 祖先
    向上寻找祖先:parent(), parents(), parentsUntil() ,
    1 parent():返回被选中元素的直接父元素,
    2 parents():返回被选中元素的所有祖先元素,一路向上直到文档的根元素(html)
    3 parentsUntil():返回给定两个元素之间的所有祖先元素

<!DOCTYPE html>
<html>
<head>
<style>
.ancestors *
{ 
display: block;
border: 2px solid lightgrey;
color: lightgrey;
padding: 5px;
margin: 15px;
}
</style>
<script src="/jquery/jquery-1.11.1.min.js">
</script>
<script>
	$(function(){
		//选中直接父类元素
		$("span").parent().css({"color":"red","border":"2px solid red"});
		$("span").parents();//所有祖先
		$("span").parents("ul");//返回指定的祖先元素
		$("span").parentsUntil("div");//返回span的祖先最远的是div ,不能超过div
	})
</script>
</head>
<body>

<div class="ancestors">
  <div style="width:500px;">div (曾祖父)
    <ul>ul (祖父)  
      <li>li (直接父)
        <span>span</span>
      </li>
    </ul>   
  </div>

  <div style="width:500px;">div (祖父)   
    <p>p (直接父)
        <span>span</span>
      </p> 
  </div>
</div>

</body>
</html>
  • 遍历后代
    向下遍历 查找元素后代,
    1 children() 返回被选中元素的所有直接子元素
    2 find() 返回被选中元素的后代元素,直到最后一个后代
</style>
<script src="/jquery/jquery-1.11.1.min.js">
</script>
<script>
	$(function(){
		$("div").children()//返回当前元素的直接后代
		$("div").children("p.1")//返回直接后代的p标签id=1
		$("div").find("span");//返回div所有的后代的span元素
		$("div").find("*");//返回所有元素
		
	})
	
</script>
</head>
<body>

<div class="descendants" style="width:500px;">div (当前元素) 
  <p>p (子)
    <span>span (孙)</span>     
  </p>
  <p>p (child)
    <span>span (孙)</span>
  </p> 
</div>

</body>
  • 水平遍历
    找出所有兄弟标签
    1 siblings() :返回被选中元素的所有同胞元素
    2 next() :返回被选中元素的下一个
    3 next() :返回所有下面的同胞
    4 prev():返回向上的同胞
  • 过滤
    1 first() :返回被选中元素的第一个
    2 last():返回被选中元素的最后一个
    3 eq() :返回被选中元素中指定索引位置的元素
    4 filter() :返回指定元素
    5 not() :不能包含此元素
<script>
$(document).ready(function(){
	$("body").first("p");//返回第一个元素
	$("body").last("p");//返回最后一个元素
	$("p").filter(".id");//返回所有p标签class是id的标签
  	$("p").not(".intro").css("background-color","yellow");
});
</script>
</head>
<body>

<h1>欢迎来到我的主页</h1>
<p>我是唐老鸭。</p>
<p class="intro">我住在 Duckburg。</p>
<p class="intro">我爱 Duckburg。</p>
<p>我最好的朋友是 Mickey。</p>

</body>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值