一、操作标签

方法\语言 js jQuery
给标签添加类 标签对象.classList.add() jQuery对象.addClass()
移除类 .classList.remove() .removeClass()
判断是否有类 .classList.contains() .hasClass()
有则删除,无则添加 .classList.toggle() .toggleClass()

jQuery的几个特点

  • 链式操作,一行代码可以操作很多标签
  • jQuery对象调用jQuery方法后还是jQuery对象,可以继续使用

举例:一行代码将第一个p标签变成红色第二个p标签变成绿色

$('p').first().css('color','red').next().css('color','green')
# 这种操作在python中的实现
class MyClass(object):
def func1(self):
print('func1')
return self def func2(self):
print('func2')
return self
obj = MyClass()
obj.func1().func2() # 在调用这个对象内的方法后,返回的还是这个对象,可以一直调用使用很多方法

1 位置操作

offset()  # 相对于浏览器窗口
position() # 相对于父标签 scrollTop() # 页面所处的位置距顶部
$(window).scrollTop()
0
$(window).scrollTop()
969
$(window).scrollTop() # 括号内不加参数就是获取
1733
$(window).scrollTop(0) # 加了参数就是设置
n.fn.init [Window]
$(window).scrollTop(500)
n.fn.init [Window]
scrollLeft()

2 尺寸

# 尺寸
$('p').height() # 文本
20
$('p').width()
1670
$('p').innerHeight() # 文本+padding
26
$('p').innerWidth()
1674
$('p').outerHeight() # 文本+padding+border
26
$('p').outerWidth()
1674

3 文本操作

方法\语言 js jQuery
获取或设置内部文本 .innerText() .text()
获取或设置内部全部内容 .innerHTML() .html()

4 获取值操作

方法\语言 js jQuery
获取值操作 .value = 'xxx' .val('xxx')
# 标签对象和jQuery对象方法对比
$('div').first().val('123') === $('div')[0].value = '123'

5 属性操作

方法\语言 js jQuery
设置标签属性 .setAttribute() .attr(name,value)
取得标签属性 .getAttribute() .attr(name)
移除标签属性 removeAttribute() removeAttr(name)
let $divEle = $('div').first()

$divEle
S.fn.init [div, prevObject: S.fn.init(2)] # 取得divEle的username属性
$divEle.attr('username')
"hz" # 设置divEle的password属性为123
$divEle.attr('password','123')
S.fn.init [div, prevObject: S.fn.init(2)] $divEle.attr('password')
"123" # 移除divEle的password属性
$divEle.removeAttr('password')
S.fn.init [div, prevObject: S.fn.init(2)] $divEle.attr('password')
undefined

6 获取属性的特例

# 对于上述需要获取具体属性和属性值的时候用attr
# 如果要返回布尔值,如checkbox radio option是否被选中用prop
$('#d3').attr('checked')
"checked"
$('#d2').attr('checked')
undefined
$('#d2').attr('checked')
undefined
$('#d4').attr('checked')
undefined
$('#d3').attr('checked')
"checked"
$('#d3').attr('checked','checked') # 无效
w.fn.init [input#d3] $('#d2').prop('checked')
false
$('#d2').prop('checked')
true
$('#d3').prop('checked',true)
w.fn.init [input#d3]
$('#d3').prop('checked',false)
w.fn.init [input#d3]

7 文档处理

方法\语言 js jQuery
创建一个p标签 .createElement('p') $('< p >')
添加到特定位置 .appendChild() .append()

实际操作

let $pEle = $('<p>')
$pEle.text('你好啊 草莓要不要来几个?')
$pEle.attr('id','d1')
$('#d1').append($pEle) # 内部尾部追加
$pEle.appendTo($('#d1')) $('#d1').prepend($pEle) # 内部头部追加
w.fn.init [div#d1]
$pEle.prependTo($('#d1'))
w.fn.init [p#d1, prevObject: w.fn.init(1)] $('#d2').after($pEle) # 放在某个标签后面
w.fn.init [p#d2]
$pEle.insertAfter($('#d1')) $('#d1').before($pEle)
w.fn.init [div#d1]
$pEle.insertBefore($('#d2')) $('#d1').remove() # 将标签从DOM树中删除
w.fn.init [div#d1] $('#d1').empty() # 清空标签内部所有的内容
w.fn.init [div#d1]

二、事件

引子

// 第一种
$('#d1').click(function () {
alert('别说话 吻我')
}); // 第二种(功能更加强大 还支持事件委托)
$('#d2').on('click',function () {
alert('借我钱买草莓 后面还你')
})

1 克隆事件

<button id="d1"> 点击</button>

<script>
$('#d1').on('click',function () {
$(this).clone(true).insertAfter($('body')) // clone(true) 默认false表示只克隆html标签和css样式,不克隆事件,改成true就可以克隆事件
})
</script>

2 自定义模态框

模态框内部本质就是给标签移除或者添加上hide属性

3 左侧菜单

<script>
$('.title').click(function () {
// 先给所有的items加hide
$('.items').addClass('hide')
// 然后将被点击标签内部的hide移除
$(this).children().removeClass('hide')
})
</script>

4 回到顶部

<script>
$(window).scroll(function () {
if($(window).scrollTop() > 300){
$('#d1').removeClass('hide')
}else{
$('#d1').addClass('hide')
}
})
</script>

5 输入校验

<script>
let textEle = $(':text')
let passEle = $(':password')
$('#d1').click(function () {
if(!textEle.val())
textEle.next().text('请输入!')
if(!passEle.val())
passEle.next().text('请输入!')
})
$('input').focus(function () {
$(this).next().text('')
})
</script>

6 input实时监控

<input type="text" id="d1">

<script>
$('#d1').on('input',function () {
console.log(this.value)
})
</script>

7 hover事件

<script>
// $("#d1").hover(function () { // 鼠标悬浮 + 鼠标移开
// alert(123)
// }) $('#d1').hover(
function () {
alert('我来了') // 悬浮
},
function () {
alert('我溜了') // 移开
}
)
</script>

8 键盘按键按下事件

<script>
$(window).keydown(function (event) {
console.log(event.keyCode)
if (event.keyCode === 16){
alert('你按了shift键')
}
})
</script>

day57 jQuery基础的更多相关文章

  1. jQuery基础课程

    环境搭建 搭建一个jQuery的开发环境非常方便,可以通过下列几个步骤进行. 下载jQuery文件库 在jQuery的官方网站(http://jquery.com)中,下载最新版本的jQuery文件库 ...

  2. JQuery基础总结上

    最近在慕课网学习JQuery基础课程,发现只是跟随网站的课程学习而不去自己总结扩展的话,很难达到真正学会理解的地步. 于是先在网站上草草过了一遍课程,然后借着今天的这个时间边记录边重新整理学习一下. ...

  3. jQuery基础之选择器

    摘自:http://www.cnblogs.com/webmoon/p/3169360.html jQuery基础之选择器 选择器是jQuery的根基,在jQuery中,对事件处理.遍历DOM和Aja ...

  4. jquery基础知识汇总

    jquery基础知识汇总 一.简介 定义 jQuery创始人是美国John Resig,是优秀的Javascript框架: jQuery是一个轻量级.快速简洁的javaScript库.源码戳这 jQu ...

  5. 【jQuery基础学习】09 jQuery与前端(这章很水)

    这章主要是将如何将jQuery应用到网站中,或者说其实就是一些前端知识,对于我这种后端程序来说其实还是蛮有用的. 关于网站结构 文件结构 前端文件分三个文件夹放 images文件夹用来存放将要用到的图 ...

  6. 【jQuery基础学习】00 序

    作为一个从来没有认真学过jQuery的菜来讲,我所学的都是jQuery基础. 算是让自己从0开始系统学一遍吧.学习书籍为:<锋利的jQuery>. 虽然是个序,表示一下我是个菜,但还是来几 ...

  7. 8、网页制作Dreamweaver(jQuery基础:安装、语法)

    在<网页制作Dreamweaver(悬浮动态分层导航)>中,运用到了jQuery的技术,轻松实现了菜单的下拉.显示.隐藏的效果,不必再用样式表一点点地修改,省去了很多麻烦,那么jQuery ...

  8. jquery 基础汇总---导图篇

    最近在慕课网学习了一些jquery的基础知识,为了方便记忆,整理出来的导图 jQuery基础总共分为4个部分,分别是样式篇.事件篇.动画篇.DOM篇. 样式篇,主要介绍jQuery的基础语法,选择器以 ...

  9. jquery基础教程读书总结

    最近静下心来看书才深刻的体会到:看书真的很重要,只有看书才能让你有心思静下心来思考. 重温<jquery基础教程> 一.事件 主要掌握常见的事件以及理解jquery的事件处理机制. 需要注 ...

随机推荐

  1. Myeclipse 2014 破解补丁以及Y2课件迅雷下载

    一. 在破解myeclipse2014之前,要先把环境变量配置好: 1)打开我的电脑--属性--高级--环境变量2)新建系统变量JAVA_HOME 和CLASSPATH 变量名:JAVA_HOME 变 ...

  2. 关于adb的下载和基本使用

    我们无论是开发还是测试,对Android SDK一定都不陌生,如果我们要使用adb(Android debug bridge)命令,那么这个就必不可少了. 1.给大家提供一个下载地址:https:// ...

  3. Qt自动生成.rc文件并配置对应属性 程序图标 版本 描述等

    Qt项目配置文件pro里需要如下配置,进行qmake,build后会自动生成.rc文件,并将对应的信息写入文件中 VERSION = 1.0.0.1 RC_ICONS = "http.ico ...

  4. redis的5种数据结构和基本操作

    1.字符串(string) 1.1设置值 set key value [ex seconds] [px milliseconds] [nx|xx] 例如: 127.0.0.1:6379> set ...

  5. @loj - 2977@ 「THUSCH 2017」巧克力

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 「人生就像一盒巧克力,你永远不知道吃到的下一块是什么味道.」 明 ...

  6. TensorFlow从0到1之TensorFlow实现简单线性回归(15)

    本节将针对波士顿房价数据集的房间数量(RM)采用简单线性回归,目标是预测在最后一列(MEDV)给出的房价. 波士顿房价数据集可从http://lib.stat.cmu.edu/datasets/bos ...

  7. Nginx 如何自定义变量?

    之前的两篇文章 Nginx 变量介绍以及利用 Nginx 变量做防盗链 讲的是 Nginx 有哪些变量以及一个常见的应用.那么如此灵活的 Nginx 怎么能不支持自定义变量呢,今天的文章就来说一下自定 ...

  8. 使用IntelliJ/Eclipse生成类图

    IntelliJ可以安装一个免费的pugins - Code Iris. PlantUML 在Eclipse中 - ObjectAidPapyrusEclipse Modeling Tools 查看原 ...

  9. ImageLoader在Gridview中的使用

    原理和ImageLoader在Listview中的使用一样,只有下面的几点变化 主页面的布局 <?xml version="1.0" encoding="utf-8 ...

  10. linux查看当前目录下,各文件夹大小

    du -lh --max-depth=1