24-[jQuery]-属性,文档,位置,筛选
1、jquery的属性操作
jquery对象有它自己的属性和方法,我们先研究一下jquery的属性操作。
jquery的属性操作模块分为四个部分:html属性操作,dom属性操作,类样式操作和值操作
html属性操作:是对html文档中的属性进行读取,设置和移除操作。比如attr()、removeAttr() DOM属性操作:对DOM元素的属性进行读取,设置和移除操作。比如prop()、removeProp() 类样式操作:是指对DOM属性className进行添加,移除操作。比如addClass()、removeClass()、toggleClass() 值操作:是对DOM属性value进行读取和设置操作。比如html()、text()、val()
(1)html文档操作,dom元素设置,移除
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jquery属性操作 attr prop</title>
</head>
<body>
<div id="box">
<p>路飞学城</p>
</div> <button>获取</button> <ul>
<li class="luffy1">路飞</li>
<li class="luffy2">路飞</li>
<li class="luffy2">路飞</li>
<li class="luffy3">路飞</li>
</ul> </body>
<script src="jquery-3.2.1.js"></script>
<script type="text/javascript">
$(function () { $('button').click(function () { //jquery 属性操作
// html 属性操作 attr ---- 对html 操作
// attr() 有一个参数 表示获取值
$('#box p').text($('#box').attr('id')); // attr() 如果有两个值 表示设置属性 不能给类添加 多个属性
$('#box').attr('class','foo');
//设置多个值 使用对象存储 , 如果设置多个类名 不能使用 attr
$('#box').attr({'class':'foo2',name:'alice'}); // class 覆盖 // $('#box').removeAttr('name'); // 删除一个属性 $('#box').removeAttr('name class'); // 删除多个 //Dom属性操作 prop ----对dom操作
console.log($('li'));
// 获取第一个元素得class值
console.log($('li').prop('class')); //设置值
// $('li').first().prop('name','app');
$('li').first().prop({'name':'app','name2':'app2'});
console.log($('li').first()); //删除dom对象得name属性
$('li').first().removeProp('name'); console.log($('li').first()); // console.log($('li').first().prop('name'));
//
// console.log($('li').prop('name')); }); }) </script>
</html>
(2)操作 class 值,操作值html,text,val
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jquery属性操作class和值操作</title>
<style type="text/css">
span.active{
font-size: 30px;
} </style>
</head>
<body>
<div id="box">
<p>路飞学城</p>
</div> <button>获取</button> <ul>
<li class="luffy1">路飞</li>
<li class="luffy2">路飞</li>
<li class="luffy2">路飞</li>
<li class="luffy3">路飞</li>
</ul> <span class="span1">
路飞吧!
</span> <div id="box2">
我是哈哈
<p>我是一个段落</p>
<a href="">百度一下</a>
<input type="text" value="我们" name="">
<button id="btn">get</button>
</div> </body>
<script src="jquery-3.2.1.js"></script>
<script type="text/javascript">
$(function () { $('button').click(function () { // 3.addClass removeClass() 添加类和删除类
$('span').addClass('span2 span3'); $('span').removeClass('span2'); var isBig = true;
$('span').click(function () {
if(isBig){
$(this).addClass('active');
isBig = false;
}else{
$(this).removeClass('active');
isBig = true;
}
}); //4.值属性得操作 text() html() val()
//获取文本
console.log($('#box2').text()); // 所有得文本都拿到了
//获取所有 html
console.log($('#box2').html()); // 设置值 用得比较频繁
// $('#box2').text('嘿嘿');
// $('#box2').text('<a>luffy city</a>');
// $('#box2').html('<a href="#">luffy city</a>'); //val()
console.log($('input').val()); //获取值
$('input').val('你是个大头鬼'); //设置值 $('#btn').click(function () {
var val = $('input').val();
$('#box2').text(val); }); //监听input 有变化时 表单控件使用得一个方法
$('input').change(function () {
console.log($(this).val());
}) }); }) </script>
</html>
2、操作input中的value值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>操作表单input中得value值</title>
</head>
<body>
<form action="">
<input type="radio" name="sex" value="112" />男
<input type="radio" name="sex" value="11" checked="" />女
<input type="radio" name="sex" value="113" />gay <input type="checkbox" value="a" checked=""/>吃饭
<input type="checkbox" value="b" checked=""/>睡觉
<input type="checkbox" value="c" checked=""/>打豆豆 <select name="timespan" id="timespan" class="Wdate" >
<option value="1">8:00-8:30</option>
<option value="2">8:30-9:00</option>
<option value="3" selected>9:00-9:30</option>
</select>
<input type="text" name="" id="" value="111" />
</form>
</body>
<script src="jquery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
console.log($(':radio'));
console.log($(':checkbox')); /*
input
* :button
* :submit
* :file
* :text
* :disabled
*
* */ //1.获取单选框中 value 值
console.log($('input[type=radio]:checked').val()); //2.获取复选框 value 值 仅仅获取 第一个值
console.log($('input[type=checkbox]:checked').val()); //3.下拉列表 被选中得值
console.log($('#timespan option:selected').val()); //4.设置单选得值
$('input[type=radio]').val(['113']); // 里面 得是 数组 //5.设置复选值
$('input[type=checkbox]').val(['b','c']); // 里面 得是 数组 //6.设置下拉列表 这里必须要用 select
// $('#timespan').val(['2']);
$('select').val(['2']); // 后面会覆盖前面得
// $('select').val(['2','1']); // 后面会覆盖前面得 //文本框
console.log($('input[type=text]').val());
$('input[type=text]').val(33); }) </script>
</html>
3、jQuery的文档操作
(1)插入操作
一、父元素.append(子元素) 追加某元素 父元素中添加新的元素
var oli = document.createElement('li');
oli.innerHTML = '哈哈哈'
//jquery中的dom操作
//1.append(content)追加 往父元素中添加新的元素
//content:string | element | jquery元素
$('ul').append('<li>1233</li>')
$('ul').append(oli)
//如果直接的内容是当前页面中的某些元素,那么这些元素将从原位置上消失。简言之,就是一个移动操作
$('ul').append($('#app'))
二、子元素.appendTo(父元素) 追加到某元素 子元素添加到父元素
$('<li>天王盖地虎</li>').appendTo($('ul')).addClass('hu')
三、prepend() 前置添加, 添加到父元素的第一个位置
$('ul').prepend('<li>我是第一个</li>')
四、prependTo 后置添加,第一个元素添加到父元素中
$('<a href="#">路飞学诚</a>').prependTo('ul')
五、父.after(子) 在匹配的元素之后插入内容 与 子.insertAfter(父)
$('ul').after('<h4>我是一个h3标题</h4>')
$('<h5>我是一个h2标题</h5>').insertAfter('ul')
六、父.before(子) 在匹配的元素之前插入内容 与 子.insertBefor(父)
$('ul').before('<h3>我是一个h3标题</h3>')
$('<h2>我是一个h2标题</h2>').insertBefore('ul')
(2)复制操作
clone() 克隆匹配的DOM元素并且选中这些克隆的副本
$('button').click(function() { // 1.clone():克隆匹配的DOM元素并且选中这些克隆的副本。
// 2.clone(true):元素以及其所有的事件处理并且选中这些克隆的副本(简言之,副本具有与真身一样的事件处理能力)
$(this).clone(true).insertAfter(this);
})
(3)替换操作
一、replaceWith():将所有匹配的元素替换成指定的HTML或DOM元素。
//将所有的h5标题替换为a标签
$('h5').replaceWith('<a href="#">hello world</a>')
//将所有h5标题标签替换成id为app的dom元素
$('h5').replaceWith($('#app'));
二、replaceAll():用匹配的元素替换掉所有 selector匹配到的元素
$('<br/><hr/><button>按钮</button>').replaceAll('h4')
(4)删除操作
一、remove() 删除节点后,事件也会删除(简言之,删除了整个标签)
$('ul').remove();
二、detach() 删除节点后,事件会保留
var $btn = $('button').detach()
//此时按钮能追加到ul中
$('ul').append($btn)
三、empty(): 清空元素中的所有后代节点
//清空掉ul中的子元素,保留ul
$('ul').empty()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jquery文档操作</title>
</head>
<body>
<span>haha</span>
<ul>
</ul>
<button id="btn">按钮</button>
</body>
<script src="jquery-3.2.1.js"></script>
<script type="text/javascript">
$(function () { var oLi = document.createElement('li');
oLi.innerHTML = '路飞'; //追加元素
$('ul').append('<li><a href="#">luffy</a></li>');
$('ul').append(oLi); //如果直接的内容是当前页面中的某些元素,那么这些元素将从原位置上消失。简言之,就是一个移动操作
$('ul').append($('span')); //apendTo()
$('<a href="#">luffy 2</a>').appendTo($('ul')); //prepend() 插入到被选中元素得第一个位置
$('ul').prepend('<li>我是第一个元素</li>'); $('<li>我是第0个元素</li>').prependTo($('ul')); //after before
$('ul').before('<h2>我是一个二级标题</h2>'); //insertBefore
$('<h1>我是一级标题</h1>').insertBefore($('ul')); $('ul').after('<h3>我是一个三级标题</h3>'); // insertAfter
$('<h4>我是一个四级标题</h4>').insertAfter($('ul')); //复制操作
$('button').click(function () { // 1.clone():克隆匹配的DOM元素并且选中这些克隆的副本。
// 2.clone(true):元素以及其所有的事件处理并且选中这些克隆的副本(简言之,副本具有与真身一样的事件处理能力)
// true 完全克隆 默认是false
$(this).clone(true).insertAfter($(this)); }); //替换
$('h3').replaceWith('<button>替换得按钮</button>'); // $('<a href="#">替换得超联系</a>').replaceAll('button'); //删除
// empty() 只清空了被选得内容
// $('ul').empty(); //remove() 被选元素 也被删除了 事件就没了
$('ul').remove();
var a = $('button').remove();
console.log(a[0],a[1]);
$('ul').append(a[1]); //detach() 被选元素 也被删除了 移除匹配得节点元素 删除节点后 事件会保留
// $('ul').detach();
// var a = $('button').detach();
// console.log(a[0],a[1]);
// $('ul').append(a[1]); }) </script>
</html>
4、jquery位置属性
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jquery位置属性</title>
<style type="text/css">
*{padding: 0;margin: 0;}
#box{position: relative;width: 200px;height: 200px;border: 1px solid red;padding: 10px 5px;}
p{position: absolute;left:30px;top: 30px}
</style>
</head>
<body style="height: 2000px; width: 2000px;">
<div id="box"> <p>我是一个段落标签</p> </div> <button id="btn">动画吧</button> <div style="width: 200px;height: 200px;margin: 100px auto;border: 1px solid deepskyblue;"></div> </body>
<script src="jquery-3.2.1.js"></script>
<script type="text/javascript">
$(function () { //1.获取匹配元素得相对父元素得偏移 position
console.log($('p').position().left); // 30
console.log($('p').position().top); //30 var offsetTop = $('p').position().top+50+'px'; $('#btn').click(function () {
$('p').animate({top:offsetTop},1000)
}); //2.获取匹配元素 相对滚动条卷起得位置信息 scrollTop scrollLeft console.log($(document).scrollTop());
console.log($(document).scrollLeft()); //监听文档滚动
$(document).scroll(function () {
// console.log($(document).scrollTop());
// console.log($(document).scrollLeft());
}); //offset 获取匹配元素在当前位置 相对偏移 相对于浏览器
console.log($('#box').offset());
console.log($('p').offset().top); // 31
console.log($('p').offset().left); //31
console.log($('#btn').offset().top);
console.log($('#btn').offset().left); //获取元素得宽高
console.log('宽'+$('#box').width()); //200
console.log('高'+$('#box').height()); //200 // 设置宽高
$('#box').width(400);
$('#box').height(400); //innerWidth outerWidth
//innerWidth = width + 2*padding 不包括边框 获取匹配元素得内部宽度
console.log($('#box').innerWidth()); //410 //outerWidth = width + 2*padding + 2*border 获取匹配元素得外部宽度
console.log($('#box').outerWidth()); //412 }) </script>
</html>
5、jquery常用筛选方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jquery常用筛选方法</title>
<style type="text/css">
li.active{background-color: gray;}
</style>
</head>
<body>
<ul>
<li class="danger">1</li>
<li><a href="">22</a></li>
<li class="danger">3</li>
<li>4</li>
<a href="#" id="anchor">百度</a>
<a href="#">百度1</a> </ul>
</body>
<script type="text/javascript" src="jquery-3.2.1.js"></script>
<script type="text/javascript">
$(function () { console.log($('li')); // jquery 得遍历
$('ul').children().each(function (index,ele) {
// console.log(index,ele);
var isDanger = $(this).hasClass('danger'); if(isDanger){
$(this).css('color','red');
}else{
$(this).css('font-size','28px')
}
}); console.log($('ul').children());
console.log($('li')); console.log($('ul').children('.danger')); console.log($('li').parent());
console.log($('a').parent()); console.log($('li').last().prev());
console.log($('li').last().prevAll()); //siblings 后面加选择器
console.log($('li').siblings('li'));
console.log($('#anchor').siblings('li'));
console.log($('#anchor').siblings('a')); // 同胞兄弟 $('li').hover(function () {
$(this).addClass('active').siblings('li').removeClass('active');
}) })
</script>
</html>
24-[jQuery]-属性,文档,位置,筛选的更多相关文章
- jquery属性文档事件等操作
1.jq方法attr removeAttr script标签大部分都是写在body标签上.下面的情况下$符号是拿不到的. 将它放到上面就能拿到$对象了.但是不能获取body里的元素.因为代码执行顺序从 ...
- python 全栈开发,Day54(jQuery的属性操作,使用jQuery操作input的value值,jQuery的文档操作)
昨日内容回顾 jQuery 宗旨:write less do more 就是js的库,它是javascript的基础上封装的一个框架 在前端中,一个js文件就是一个模块 一.用法: 1.引入包 2.入 ...
- python全栈开发day48-jqurey自定义动画,jQuery属性操作,jQuery的文档操作,jQuery中的ajax
一.昨日内容回顾 1.jQuery初识 1).使用jQuery而非JS的六大理由 2).jQuery对象和js对象转换 3).jQuery的两大特点 4).jQuery的入口函数三大写法 5).jQu ...
- 使用jQuery匹配文档中所有的li元素,返回一个jQuery对象,然后通过数组下标的方式读取jQuery集合中第1个DOM元素,此时返回的是DOM对象,然后调用DOM属性innerHTML,读取该元素 包含的文本信息
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- js、jQuery 获取文档、窗口、元素的各种值
基于两年开发经验,总结了 javascript.jQuery 获取窗口.文档.元素的各种值 javascript: 文档:是整个document所有的内容 浏览器当前窗口文档body的宽度: docu ...
- jQuery 的文档操作
在 js 中也有DOM操作,也可以进行 增删改查 ,但是通过 js 的DOM操作会发现,我的天哪,代码好多.但是 jQuery的文档操作就少了很多. js 中 DOM 的示例 : var box = ...
- jquery获取文档高度和窗口高度的例子
jquery获取文档高度和窗口高度,$(document).height().$(window).height() $(document).height():整个网页的文档高度 $(window).h ...
- js和jquery获取文档对象以及滚动条位置
<div style="width:120px;height:120px;border:1px solid red; position:absolute; left:800px; to ...
- JQuery fullcalender文档
转载: http://blog.csdn.net/lgg2011. 使用方式, 引入相关js, css后, $(‘#div_name’).fullCalendar({//options}); 接受的 ...
- 前端开发之jQuery属性和文档操作
主要内容: 1.jQuery属性操作 2.jQuery文档操作 一.jQuery属性操作 1.什么是jQuery的属性操作? jQuery的属性操作模块包括四个部分:html属性操作,dom属性操作, ...
随机推荐
- lambda 表达式的由来
相关技术点:函数指针.C#委托.匿名方法.lambda表达式 谈到lambda表达式,首先从委托讲起, 委托是持有一个或者多个方法的对象,这个特性有点像C中的函数指针,可以指向不同的方法,下面的例子是 ...
- [翻译] BezierString
BezierString https://github.com/lvnyk/BezierString Rendering NSAttributedStrings along arbitrary con ...
- 解析苹果的官方例子LazyTableImages实现图片懒加载原理
解析苹果的官方例子LazyTableImages实现图片懒加载原理 首先在官网下载源码: https://developer.apple.com/library/ios/navigation/#sec ...
- Linux内核态和用户态
两张图说明Linux内核态和用户态之间的关系
- python3 django1.10 使用mysql服务器
python3中使用mysql报错ModuleNotFoundError: No module named 'MySQLdb' 原因是:在python2.x中用mysqldb,但是在python3.x ...
- JAVA入门之基础语言
在上一章文章中,读者已经了解了如何搭建Java 开发环境及Java 程序的开发过程.从本篇文章开始讲解Java 的基本语言.这些基本语言的语法和其他一些编程语言相比有些是类似的,但还有很多不同之处,读 ...
- css实现梯形
使用伪元素before和after分别在矩形元素前后加三角形或者直接设置border 使用3d旋转矩形,使之看起来像矩形 <html> <head> <meta char ...
- 16:42 python历史
python的作者是Guido van Rossum,大牛,2.7版本好像到2020年就不能用了,估计很多公司对此有很多的需求吧.
- Gsoap在QT工程里如何调用
Qt并没有SOAP的官方实现,都是借助三方库来实现,不过似乎有个QtSoap,不过这个不是太会用,所以还是用Gsoap 这里生成纯C文件, 1.下载gSOAP(http://sourceforge.n ...
- Django之Model (ORM)
传统操作数据库 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层 ...