jQuery 操作方法

news/2024/7/11 1:34:44 标签: jquery

文章目录

    • 1. 属性操作
      • 设置属性(prop)
      • 获取属性(prop)
      • 设置自定义属性(attr)
      • 获取自定义属性(attr)
      • 删除属性:(removeProp,removeAttr)
      • 案例:全选反选
    • 2. 样式操作
      • 设置单个样式
      • 设置多个样式
      • 获取样式:
    • 3. 类名操作
    • 4. 内容操作
    • 5. 节点操作
      • 创建元素
      • 添加元素
      • 替换元素
      • 删除元素
      • 复制元素
    • 6. 元素尺寸
      • 1. 元素内容区域尺寸操作
      • 2. 获取元素内部区域尺寸
      • 3. 获取元素占据页面的尺寸
    • 7. 元素位置
      • 元素相对页面的位置
      • 元素相对父元素的的偏移量
      • 获取元素滚动过的距离

1. 属性操作

设置属性(prop)

  • 语法:$("div").prop(属性名,属性值);
// 给 div 元素添加一个 id 属性,值是 box
$('div').prop('id', 'box')

获取属性(prop)

  • 语法:$("div").prop(属性名);
// 获取 div 的 id 属性
console.log($('div').prop('id'))

设置自定义属性(attr)

  • 语法:$("div").attr(属性名,属性值);
// 给 div 添加一个 index 属性,值是 1
$('div').attr('index', 1)

获取自定义属性(attr)

  • 语法:$("div").attr(属性名);
// 获取 div 的 index 属性
console.log($('div').attr('index'))

删除属性:(removeProp,removeAttr)

  • 语法1:$("div").removeProp(属性名);
  • 语法2:$("div").removeAttr(属性名);
// 移除元素自己本身的属性
$('div').removeProp('id')
// 移除元素的自定义属性
$('div').removeAttr('index')

案例:全选反选

  • js写法
<body>
	<input type="checkbox">商品1<br>
	<input type="checkbox">商品2<br>
	<input type="checkbox">商品3<br>
	<input type="checkbox">商品4<br>
	<input type="checkbox">商品5<br>
	<input type="checkbox">商品6<br>
	<button class="all">全选</button><button class="reverse">反选</button><button class="allNot">
取消</button><br>
	<span>删除</span>
</body>
<script src="../js/jquery.js"></script>
<script type="text/javascript">
	var checkboxs = document.querySelectorAll("input");
	document.querySelector(".all").onclick=function(){
		for(var i=0;i<checkboxs.length;i++){
		if(!checkboxs[i].checked){
			checkboxs[i].checked = true;
			}
		}
	}
	document.querySelector(".reverse").onclick=function(){
	for(var i=0;i<checkboxs.length;i++){
		if(!checkboxs[i].checked){
			checkboxs[i].checked = true;
		}else{
			checkboxs[i].checked = false;
		}
	}
	}
	document.querySelector(".allNot").onclick=function(){
	for(var i=0;i<checkboxs.length;i++){
		if(checkboxs[i].checked){
			checkboxs[i].checked = false;
		}
	}
	}
</script>
$(".all").click(function(){
	$("input[type='checkbox']").prop("checked",true);
});
$(".reverse").click(function(){
	if($("input[type='checkbox']").prop("checked")){
		$("input[type='checkbox']").prop("checked",false);
	}else{
		$("input[type='checkbox']").prop("checked",true);
	}
});
$(".allNot").click(function(){
	$("input[type='checkbox']").prop("checked",false);
});
  • 当操作jquery对象的时候,不需要遍历操作每一个,直接操作的就是每一个元素。因为在jquery内部自带遍历操作。
    这就是隐形迭代。

2. 样式操作

设置单个样式

  • 语法:$("div").css(css属性名,值);
// 给元素设置一个 css 样式
$('div').css('width', '100px')

设置多个样式

  • 语法:$("div").css({ css属性名:值, css属性名:值 })
// 给元素设置一组样式
$('div').css({
    width: '100px',
    height: '200px'
})

获取样式:

  • 语法:$("div").css(css属性名);
// 获取元素的某一个样式
$('div').css('width')

3. 类名操作

$("div").addClass(类名); // 添加类名
$("div").removeClass(类名); // 删除类名
$("div").toggleClass(类名); // 在添加和删除之间切换
$("div").hasClass(类名); // 判断元素是否有这个类名,有是true,没有是false
  • 案例:选项卡
<style>
*{
	padding: 0;
	margin: 0;
}
.box{
	width:600px;
	height:400px;
	border:1px solid #000;
}
.title{
	height: 50px;
	display: flex;
	justify-content:space-evenly;
	align-items:center;
	background-color: pink;
}
.title span{
	display:block;
	width:150px;
	height: 30px;
	background:#ccc;
	line-height: 30px;
	text-align: center;
}
.title span.current{
	background:yellow;
}
.content{
	width: 600px;
	height: 350px;
}
.content p{
	width:600px;
	height: 350px;
	font-size:200px;
	font-weight:bold;
	color:#fff;
	text-align: center;
	line-height: 350px;
	display:none;
}
.content p.current{
	display:block;
}
.content p:first-child{
	background:red;
}
.content p:nth-child(2){
	background:blue;
}
.content p:last-child{
	background:green;
}
</style>
<body>
<div class="box">
	<div class="title">
		<span class="current">红色</span>
		<span>蓝色</span>
		<span>绿色</span>
	</div>
	<div class="content">
		<p class="current">1</p>
		<p>2</p>
		<p>3</p>
	</div>
</div>
</body>
<script src="../js/jquery.js"></script>
<script type="text/javascript">
$("div>span").click(function(){
$(this).addClass("current").siblings().removeClass("current").parent().next().find("p").eq($
(this).index()).addClass("current").siblings().removeClass("current");
});
</script>
  • 补充知识点:
$(this) 是将this关键字转为jquery对象
$(this).index() // index方法是获取元素的下标
  • 链式编程在这里体现的淋漓尽致。

4. 内容操作

$("div").text(); // 获取元素内容 === 相当于 div.innerText
$("div").text("盒子"); // 设置元素内容 === 相当于 div.innerText = "盒子"
$("div").html(); // 获取元素代标签的内容 === 相当于 div.innerHTML
$("div").html("<b>文字</b>"); // 设置元素带标签的内容 === 相当于 div.innerHTML = "<b>文字</b>"
$("input").val(); // 获取表单元素的值 === 相当于 input.value
$("input").val("请输入用户名"); // 设置表单元素的内容 === 相当于 input.value = "请输入用户名"

5. 节点操作

创建元素

  • 语法:$("标签和内容") // 创建一个标签并给里面放内容
var box = $("<div class='box'>div盒子</box>");
console.log(box);

添加元素

  • 给父元素追加子元素
  • 语法:父元素.append(子元素)
<div>
    <span>span标签</span>
</div>
</body>
<script src="jquery.js"></script>
<script type="text/javascript">
	var box = $("div");
	var b = $("<b>加粗文字</b>")
	box.append(b);
</script>

在这里插入图片描述

  • 给父元素最前面添加子元素
  • 语法:父元素.prepend(子元素);
<div>
    <span>span标签</span>
</div>
</body>
<script src="jquery.js"></script>
<script type="text/javascript">
	var box = $("div");
	var b = $("<b>加粗文字</b>")
	box.prepend(b);
</script>

在这里插入图片描述

  • 将子元素添加到父元素中
  • 语法:
// 将子元素追加到父元素中
子元素.appendTo(父元素);
// 将子元素添加到父元素最前面
子元素.prependTo(父元素);
  • 添加下一个兄弟元素
  • 语法:元素.after(下一个兄弟元素);
<div>
    <span>span标签</span>
</div>
</body>
<script src="../js/jquery.js"></script>
<script type="text/javascript">
	var span = $("span");
	var b = $("<b>加粗文字</b>")
	span.after(b);
</script>

在这里插入图片描述

  • 添加上一个兄弟元素
  • 语法:元素.before(上一个兄弟元素);
<div>
    <span>span标签</span>
</div>
</body>
<script src="../js/jquery.js"></script>
<script type="text/javascript">
	var span = $("span");
	var b = $("<b>加粗文字</b>")
	span.before(b);
</script>

在这里插入图片描述

  • 将元素添加到某个元素的前面或后面:
// 将元素添加到某个元素前面
要添加的元素.insertBefore(元素);
// 将元素添加到某个元素后面
要添加的元素.insertAfter(元素);

替换元素

  • 使用新元素替换某个元素:
  • 语法:某个元素.replaceWith(新元素)
<div>
    <span>span标签</span>
</div>
</body>
<script src="../js/jquery.js"></script>
<script type="text/javascript">
	var span = $("span");
	var b = $("<b>加粗文字</b>")
	span.replaceWith(b);
</script>

在这里插入图片描述

  • 用新元素替换掉某个元素:
  • 语法:新元素.replaceAll(某个元素)

删除元素

  • 删除元素内部所有标签和内容,让自己变成一个空标签
  • 语法:元素.empty()
<div>
    <span>span标签</span>
</div>
</body>
<script src="../js/jquery.js"></script>
<script type="text/javascript">
	var box = $("div");
	box.empty();
</script>

在这里插入图片描述

  • 将当前标签从页面中删除
  • 语法:元素.remove() // 删除自己和自己内部所有内容
<div>
    <span>span标签</span>
</div>
</body>
<script src="../js/jquery.js"></script>
<script type="text/javascript">
	var box = $("div");
	box.remove();
</script>

在这里插入图片描述

复制元素

元素.clone([是否复制自身的事件],[是否复制子元素的事件])
  • 使用说明:

  • jqueyr中的复制元素是深复制,复制标签结构和内容

  • 这个方法接收两个参数,参数1代表是否把元素的事件也克隆出来,默认为false;参数2代表是否把元素的子元素的事件克隆出来,默认跟随第一个参数的值。

  • 如果不复制父元素的事件,子元素的事件也不能复制

  • 节点操作案例:qq菜单

<link rel="stylesheet" href="./font/iconfont.css">
<style>
*{
    padding: 0;
    margin: 0;
    list-style:none;
}
ol{
    width:300px;
    background-color: pink;
    padding-left:10px;
    margin:50px auto;
}
h2{
    font-size:20px;
    height:30px;
    line-height:30px;
}
ol ul{
    display:none;
}
ol ul li{
    font-size:18px;
    height:24px;
    line-height:24px;
    padding-left:2em;
    background-color: #666;
    color:#fff;
    margin:5px 0;
}
</style>
</head>
<body>
<ol>
    <li>
        <h2><i class="iconfont icon-arrowRight"></i>我的好友</h2>
        <ul>
            <li>张三</li>
            <li>李四</li>
            <li>王五</li>
        </ul>
    </li>
    <li>
        <h2><i class="iconfont icon-arrowRight"></i>我的坏友</h2>
        <ul>
            <li>张小三</li>
            <li>李小四</li>
            <li>王小五</li>
        </ul>
    </li>
    <li>
        <h2><i class="iconfont icon-arrowRight"></i>黑名单</h2>
        <ul>
            <li>张大三</li>
            <li>李大四</li>
            <li>王大五</li>
        </ul>
    </li>
</ol>
</body>
<script src="./js/jquery.js"></script>
<script type="text/javascript">
$("h2").click(function(){
    var ulStyle = $(this).next().css("display");
    if(ulStyle == "none"){
        $(this)
            .find("i")
            .removeClass("icon-arrowRight")
            .addClass("icon-changyongtubiao-xianxingdaochu-zhuanqu-");
        $(this)
            .next() // ul
            .css("display","block")
            .parent() 
            .siblings()
            .find("ul") 
            .css("display","none")
            .prev() 
            .find("i") 
            .removeClass("icon-changyongtubiao-xianxingdaochu-zhuanqu-")
            .addClass("icon-arrowRight");
    }else{
        $(this).find("i").removeClass("icon-changyongtubiao-xianxingdaochu-zhuanqu-").addClass("icon-arrowRight");
        $(this).next().css("display","none");
    }
});
</script>

6. 元素尺寸

1. 元素内容区域尺寸操作

  • 语法:
元素.height(); // 获取元素内容区域高度
元素.height(高度); // 设置元素内容区域高度
元素.width(); // 获取元素内容区域宽度
元素.width(宽度); // 设置元素内容区域宽度
  • 使用:
// 获取 div 元素内容位置的高,不包含 padding 和 border
$('div').height()
// 设置 div 内容位置的高为 200px
$('div').height(200)

// 获取 div 元素内容位置的宽,不包含 padding 和 border
$('div').width()
// 设置 div 内容位置的宽为 200px
$('div').width(200)

2. 获取元素内部区域尺寸

  • 语法:
元素.innerHeight(); // 获取元素内部的高度,包含padding,但不包含border
元素.innerWidth(); // 获取元素内部的宽度,包含padding,但不包含border
  • 使用:
// 获取 div 元素内容位置的高,包含 padding 不包含 border
$('div').innerHeight()

// 获取 div 元素内容位置的宽,包含 padding 不包含 border
$('div').innerWidth()

3. 获取元素占据页面的尺寸

  • 语法:
元素.outHeight(); // 获取元素占据的高度,包含padding和border,不包含margin
元素.outHeight(true); // 获取元素占据的高度,包含padding和border,包含margin
元素.outWidth(); // 获取元素占据的宽度,包含padding和border,不包含margin
元素.outWidth(true); // 获取元素占据的宽度,包含padding和border,包含margin
  • 使用:
// 获取 div 元素内容位置的高,包含 padding 和 border
$('div').outerHeight()
// 获取 div 元素内容位置的高,包含 padding 和 border 和 margin
$('div').outerHeight(true)

// 获取 div 元素内容位置的宽,包含 padding 和 border
$('div').outerWidth()
// 获取 div 元素内容位置的高,包含 padding 和 border 和 margin
$('div').outerWidth(true)

7. 元素位置

元素相对页面的位置

  • 语法:
元素.offset(); // 获取到元素在页面中的位置,包含left值和top值,返回一个对象
元素.offset({left:,top:}); // 将元素设定到指定的位置,使用relative
  • 使用:
// 获取 div 相对页面的位置
$('div').offset() // 得到的是以一个对象 { left: 值, top: 值 }

// 给 div 设置相对页面的位置
$('div').offset({ left: 100, top: 100 })
// 获取定位到一个距离页面左上角 100 100 的位置
  • 语法:

元素相对父元素的的偏移量

  • 语法:
元素.position(); // 获取元素相对于定位的父元素的偏移值,不管设置的是什么,获取到的永远是left和top
  • 使用:
// 获取 div 相对于父元素的偏移量(定位的值)
$('div').position()

获取元素滚动过的距离

$(window).scrollTop(); // 获取元素滚动过的高度
$(window).scrollLeft(); // 获取元素滚动过的宽度
$(window).scrollTop(); // 设置元素滚动过的高度
$(window).scrollLeft(); // 设置元素滚动过的宽度
  • 使用:
window.onscroll = function () {
    // 获取浏览器卷去的高度
    console.log($(window).scrollTop())
}

window.onscroll = function () {
    // 获取浏览器卷去的宽度
    console.log($(window).scrollLeft())
}

http://www.niftyadmin.cn/n/509662.html

相关文章

js 两个数对之间的最大乘积差

两个数对 (a, b) 和 (c, d) 之间的 乘积差 定义为 (a * b) - (c * d) 。 例如&#xff0c;(5, 6) 和 (2, 7) 之间的乘积差是 (5 * 6) - (2 * 7) 16 。 给你一个整数数组 nums &#xff0c;选出四个 不同的 下标 w、x、y 和 z &#xff0c;使数对 (nums[w], nums[x]) 和 (nums…

jQuery_简介和安装

文章目录jQuery 是什么jQuery 能干吗jQuery 兼容性jQuery 常用网站jQuery 安装教程jQuery 版本说明jQuery 使用方法引入方式检测引入是否成功jQuery 是什么 jQuery 是一个前端库&#xff0c;也是一个方法库他里面封装着一些列的方法供我们使用我们常用的一些方法它里面都有&am…

JAVA中方法的重载

方法的重载&#xff1a; 1.方法名 相同 2.返回值 不作要求&#xff0c;你随意 3.参数列表 不同(参数类型或参数个数) 4.要在同一个类中 当我们的一个方法已经在很多地方被调用&#xff0c;可新的方法需要旧方法同一种功能&#xff0c;比如计数器的相加有整数的加法&#xff0c;…

jQuery 事件及动画

文章目录jQuery 事件加载事件元素事件on方法off方法trigger方法one方法常用事件click事件dbclick事件scroll事件hover事件jQuery 动画基本动画1. 显示&#xff08;show&#xff09;2. 隐藏&#xff08;hide&#xff09;3. 切换显示隐藏&#xff08;toggle&#xff09;4. 元素上…

js 使每位学生都有座位的最少移动次数

一个房间里有 n 个座位和 n 名学生&#xff0c;房间用一个数轴表示。给你一个长度为 n 的数组 seats &#xff0c;其中 seats[i] 是第 i 个座位的位置。同时给你一个长度为 n 的数组 students &#xff0c;其中 students[j] 是第 j 位学生的位置。 你可以执行以下操作任意次&a…

JAVA中数组

数组的概念 数组是用来存放 相同类型的集合&#xff0c;内存是连续的 数组的创建&#xff1a; 除了第三种创建数组的方法 int[ ] array3 new int[4]; 其余都不能在数组括号里加数字&#xff0c;JAVA会自己识别出数组有多少个元素&#xff0c;且int[ ] array3 new int[4]在…

jQuery AJAX请求

文章目录发送AJAX请求get请求post请求ajax请求jsonp请求全局AJAX函数ajaxStartajaxSendajaxSuccessajaxErrorajaxCompleteajaxStop发送AJAX请求 get请求 语法&#xff1a; $.get(请求地址, 参数, 成功的回调函数, json); 参数1&#xff1a;请求地址 参数2&#xff1a;请求携…