jquery快速入门(三)
捕获内容和属性
1.DOM 操作
获得内容 - text()、html() 以及 val()
text() - 设置或返回所选元素的文本内容,如果不带值则是返回值,如果带值则是修改值,如:$('p').text('我要修改原来的文本');
html() - 设置或返回所选元素的内容(包括 HTML 标记),如果不带值则是返回值,如果带值则是修改值,如:$('p').html("<b>Hello world!</b>");
val() - 设置或返回表单字段的值,如果不带值则是返回值,如果带值则是修改值,如:$('input').val("修改input框的默认value值");
获取属性 - attr() 或 prop()
对于 HTML 元素本身就带有的固有属性,在处理时,使用 prop 方法,如果带有属性值则是修改属性值,如果不带属性值则是返回属性值:如 $('a').attr('href' : 'www.guiqingyuang.com');
对于 HTML 元素我们自己自定义的 DOM 属性,在处理时,使用 attr 方法。
例:<a href="https://www.runoob.com" target="_self" class="btn">少时诵诗书</a>
例子里 <a> 元素的 DOM 属性有: href、target 和 class,这些属性就是 <a> 元素本身就带有的属性,或者说在 IDE 里能够智能提示出的属性,这些就叫做固有属性。处理这些属性时,建议使用 prop 方法。
1.如果有相应的属性,返回指定属性值。
2.如果没有相应的属性,返回值是空字符串。
例:<a href="#" id="link1" action="delete" rel="nofollow">删除</a>
例子里 <a> 元素的 DOM 属性有: href、id 和 action,很明显,前两个是固有属性,而后面一个 action 属性是我们自己自定义上去的,<a> 元素本身是没有这个属性的。处理这些属性时,建议使用 attr 方法。
attr 方法还支持同时修改多个属性,如:<a href="http://www.runoob.com" id="runoob">教程坎坎坷坷</a>
$(document).ready(function(){
$("button").click(function(){
$("#runoob").attr({
"href" : "http://www.runoob.com/jquery",
"title" : "jQuery 教程"
});
// 通过修改的 title 值来修改链接名称
title = $("#runoob").attr('title');
$("#runoob").html(title);
});
});
1.如果有相应的属性,返回指定属性值。
2.如果没有相应的属性,返回值是 undefined。
text()、html() 以及 val() 的回调函数
回调函数有两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值。然后以函数新值返回您希望使用的字符串。
例:$(document).ready(function(){
$("#btn1").click(function(){
$("#test1").text(function(i,origText){ //这里function传两个参数,第一个是下标,第二个参数是原来的值
return "旧文本: " + origText + " 新文本: Hello world! (index: " + i + ")";
});
});
例:$("#btn2").click(function(){
$("#test2").html(function(i,origText){ //这里function传两个参数,第一个是下标,第二个参数是原来的值
return "旧 html: " + origText + " 新 html: Hello <b>world!</b> (index: " + i + ")";
});
});
attr(),也提供回调函数。回调函数有两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值。然后以函数新值返回您希望使用的字符串。
例:$(document).ready(function(){
$("button").click(function(){
$("#runoob").attr("href", function(i, origValue){ //这里function传两个参数,第一个是下标,第二个参数是原来的值
return origValue + "/jquery";
});
});
});
jQuery - 添加元素
添加新的 HTML 内容
添加新内容的四个 jQuery 方法:
- append() - 在被选元素的结尾插入内容 如: $("p").append("追加文本");
- prepend() - 在被选元素的开头插入内容 如: $("p").prepend("在开头追加文本");
- after() - 在被选元素之后插入内容 如: $("img").after("在后面添加文本");
- before() - 在被选元素之前插入内容 如: $("img").before("在前面添加文本");
append() 和 prepend() 方法能够通过参数接收无限数量的新元素。可以通过 jQuery 来生成文本/HTML
例:
$('#lia').click(function(){
var la1 = '<p>文本内容</p>'; // 使用 HTML 标签创建文本
var la2 = $('<div></div>').text('文本内容222'); // 使用 jQuery 创建文本
var la3 = document.createElement('h1');
la3.innerHTML="我是通过dom创建的文本";
$('span').prepend(la1, la2, la3);
});
通过 after() 和 before() 方法添加若干新元素
例:$('#btnnn').click(function(){
var laa1 = '<h2> 20120120 </h2>';
var laa2 = $('<i></i>').text('我是使用jq方法添加的文本');
var laa3 = document.createElement('button');
laa3.innerHTML = '我是添加的按钮';
var bsns = $('#huaaa').after(laa1, laa2, laa3);
console.log('bsns==>', bsns);
})
删除元素
如需删除元素和内容,一般可使用以下两个 jQuery 方法:
remove() - 删除被选元素(及其子元素) remove() 方法也可接受一个参数,允许您对被删元素进行过滤。
例:$('#btna').click(function(){ //这里是移除所有带有listarr类的li标签和标签里面的内容
$('#hua>li').remove('.listarr');
})
empty() - 从被选元素中删除子元素
例: $(function(){
// remove 删除内容包括标签
// $('#btna').click(function(){
// $('.box-aa,p').remove();
// });
// empty(m铁) 删除内容,保留标签
$('#btna').click(function(){
$('.box-aa,p').empty();
});
})
获取并设置 CSS 类
附:jquery中 first() 与 :first 的区别
首先 jQuery 中默认有的方法是 .first(),而 :first 是 jQuery 选择器支持的语法 $('div:first')。
实际上,.first() 方法就是 .eq(0) 的封装而已。
比如 p:first 就是第一个P元素,p:last就是最后一个P元素(相对于整个页面)。除了这两个之外的怎么办?可以通过eq来遍历。如.eq(2)
操作 CSS
addClass() - 向被选元素添加一个或多个类
$(function(){
$('#btn').click(function(){
$('.lia1,.lasta,p').addClass('on');
$('.lia2,.listall').addClass('on1');
});
$('.lia1,.lasta,p').addClass('on1 on2');//添加多个类
})
removeClass() - 从被选元素删除一个或多个类
例: $('.lia1,.lasta').removeClass('ass vvb df');
toggleClass() - 对被选元素进行添加/删除类的切换操作
例:$('.lia1,.lasta').toggleClass('ass vvb df');
css() - 设置或返回样式属性
例: $('#btn').click(function(){
// 获取css属性
var aa = $('li').css('backgroundColor');
console.log('aa==>', aa); //默认情况只获取第一个li的属性,要获取其他的需要使用伪类的nth-child()来获取
var bb = $('li:nth-child(5)').css('backgroundColor');
console.log('bb==>', bb);
//但是nth-child()方法并不好,所以使用eq()来遍历,需要注意的是是从下标0开始算的,不是像nth-child()直接写位置的
var cc = $('li').eq(3).css('backgroundColor');//这里eq(3)的实际位置是内容004的位置。
console.log('cc==>', cc);
//设置css属性
$('li').eq(4).css({
'backgroundColor':'#45ffff',
'border':'solid 1px #f00'
})
})
尺寸方法
width() width() 方法设置或返回元素的宽度(不包括内边距、边框或外边距)。
height() height() 方法设置或返回元素的高度(不包括内边距、边框或外边距)。
innerWidth() innerWidth() 方法返回元素的宽度(包括内边距)。
innerHeight() innerHeight() 方法返回元素的高度(包括内边距)。
outerWidth() outerWidth() 方法返回元素的宽度(包括内边距和边框)。
outerHeight() outerHeight() 方法返回元素的高度(包括内边距和边框)。
需要注意的地方,设置了 box-sizing 后,width() 获取的是 css 设置的 width 减去 padding 和 border 的值。
.test{width:100px;height:100px;padding:10px;border:10px;box-sizing:border-box;}
- width() 获取为: 60
- innerWidth() 获取值为: 80
- outWidth() 获取值为: 100

jquery快速入门(三)的更多相关文章
- jquery快速入门三
事件 常用事件 click(function(){.......}) #触发或将函数绑定到指定元素的click事件 hover(function(){.....}) 当鼠标指针悬停在上面时触发.... ...
- day 48 jQuery快速入门
jQuery快速入门 jQuery jQuery介绍 1.jQuery是一个轻量级的.兼容多浏览器的JavaScript库. 2.jQuery使用户能够更方便地处理HTML Document.Ev ...
- jQuery 快速入门教程
内容目录 jQuery 入门 什么是jQuery 如何使用jQuery jQuery的运行原理 如何选择jQuery版本 ready() 准备就绪时执行代码 jQuery 核心:选取元素 使用jQue ...
- jquery快速入门(二)
jQuery 效果 1.隐藏,显示 1.1显示 hide() 和隐藏 show() 语法:$(selector).hide(speed,callback); $(selector).show(spee ...
- jQuery快速入门专题
jQuery入门专题 本人博客特点:最高重要等级为*****(五红星),依次减少代表重要性相对较低! 一.jQuery简介 jQuery 是一个 JavaScript的一个库,也就是说jQuery是基 ...
- jQuery简单入门(三)
3.事件和动画 A. 事件 Aa. DOM加载 1.为什么使用jQuery加载DOM方法? 以javascript的window.onload()方法加载DOM的先决条件是:必须等待被请求页面的资源全 ...
- jquery快速入门(四)
jQuery 遍历 向上遍历 DOM 树 parent() parent() 方法返回被选元素的直接父元素.该方法只会向上一级对 DOM 树进行遍历. parents() parents() 方法返回 ...
- jquery快速入门(一)
一.jquery加载文档 jquery加载文档(也叫入口函数) $(document).ready(function(){ // 这里写 jQuery 代码... }); 简写方式: $(functi ...
- JQuery快速入门-简介
一.什么是JQuery? jQuery是一个JavaScript库,它通过封装原生的JavaScript函数得到一整套定义好的方法.它的作者是John Resig,于2006年创建的一个开源项目,随着 ...
随机推荐
- jenkins 解决构建成功后进程消失的问题
最近模块拆分,独立出了几个服务.上线流程并不复杂,只需要在指定目录执行bash deploy.sh master即可上线master分支.但是架不住模块太多,每天在上线流程上也花费了不少时间,所以尝试 ...
- 虚拟机console基础环境配置——sshd安全登陆
1. 概述2. 配置console的登陆2.1 配置sshd服务2.2 重启sshd服务2.3 无法登陆的问题解决3. 配置密钥登陆3.1 上传公钥的方式3.2 下载密码的方式3.3 虚拟机和宿主机共 ...
- RabbitMQ和Kafka到底怎么选?
前言 开源社区有好多优秀的队列中间件,比如RabbitMQ和Kafka,每个队列都貌似有其特性,在进行工程选择时,往往眼花缭乱,不知所措.对于RabbitMQ和Kafka,到底应该选哪个? Rabbi ...
- 【STM32H7教程】第8章 STM32H7的终极调试组件Event Recorder
完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第8章 STM32H7的终极调试组件Event Re ...
- 作为一个零基础的新手,如何系统的自学Java和JavaEE开发技术?
其实这个问题很简单,我用最简单的语言给大家描述一下,学习一样东西就要了解这样东西学完了要干什么事情,有什么作用.然后就是应该学习哪些必要的内容,该如何运用得当的方法进行有效率的学习不至于自己摸不着头脑 ...
- Python2与Python3字符编码的区别
目录 字符编码应用之Python(掌握) 执行Python程序的三个阶段 Python2与Python3字符串类型的区别(了解) Python2 str类型 Unicode类型 Python3 字符编 ...
- 基于tcp实现远程执行命令
命令执行服务器: # Author : Kelvin # Date : 2019/1/30 20:10 from socket import * import subprocess ip_conf = ...
- Python-爬取校花网视频(单线程和多线程版本)
一.参考文章 python爬虫爬取校花网视频,单线程爬取 爬虫----爬取校花网视频,包含多线程版本 上述两篇文章都是对校花网视频的爬取,由于时间相隔很久了,校花网上的一些视频已经不存在了,因此上述文 ...
- 用Docker解决坑爹的环境搭建系列——PHP+Apache2
sudo docker pull eboraas/apache-php sudo docker run -p 9991:80 --name php -v /data/docker/php/www:/v ...
- Proj.Net 投影介绍
Proj.Net是开源地图投影库Proj.4的.net版本,许多GIS开源软件的投影都直接或间接地使用Proj.4的库,Proj.4是用C语言编写..Net下的开源GIS项目NetTopologySu ...