Day14

JQuery

属性选择器:

属性选择器:
[attribute]
[attribute=value]// 属性等于
[attribute!=value]// 属性不等于


表单筛选器:
$(":checkbox")   //找到所有的checkbox属性
:text
:password
:file
:radio
:checkbox
    
--按钮
:submit
:reset
:button
    
--表单对象属性:
:enabled 
:disabled
:checked ( 选中)
:seleted (select : 选中)
    
筛选器方法:

下一个元素:
$('#id').next()  --> 
$('#id').nextAll()
$('#id').nextUntil()  

上一个元素:
$('#id').prev()
$('#id').prevAll()
$('#id').prevUntil()

父亲元素:
$("#id").parent()
$("#id").parents()  // 查找当前元素的所有的父辈元素
$("#id").parentsUntil() // 查找当前元素的所有的父辈元素,直到遇到匹配的那个元素为止。

儿子和兄弟元素:
$("#id").children();// 儿子们
$("#id").siblings();// 兄弟们

查找: find()
搜索所有与指定表达式匹配的元素
$("div").find('p')  === $('div p')

筛选: filter()
筛选出与指定表达式匹配的元素集合。用于缩小匹配的范围
$('div').filter('.c1')  ===  $('div.c1')

.first() // 获取匹配的第一个元素
.last() // 获取匹配的最后一个元素
.not() // 从匹配元素的集合中删除与指定表达式匹配的元素
.has() // 保留包含特定后代的元素,去掉那些不含有指定后代的元素。
.eq() // 索引值等于指定值的元素

操作标签

操作标签:

1.样式操作:
addClass();// 添加指定的CSS类名。
removeClass();// 移除指定的CSS类名。
hasClass();// 判断样式存不存在
toggleClass();// 切换CSS类名,如果有就移除,如果没有就添加

eG:
css("color","red")//DOM操作:tag.style.color="red"

$("p").css("color", "red"); //将所有p标签的字体设置为红色

2.位置操作:
offset()// 获取匹配元素在当前窗口的相对偏移或设置元素位置
position()// 获取匹配元素相对父元素的偏移
scrollTop()// 获取匹配元素相对滚动条顶部的偏移
scrollLeft()// 获取匹配元素相对滚动条左侧的偏移
 
    .offset()方法允许我们检索一个元素相对于文档(document)的当前位置。--》dom文档

和 .position()的差别在于: .position()是相对于相对于父级元素的位移。 ---》 父标签

2.1 尺寸:
height()
width()
innerHeight()
innerWidth()
outerHeight()
outerWidth()

文本操作

文本操作:

html代码: 
html()// 取得第一个匹配元素的html内容
html(val)// 设置所有匹配元素的html内容

文本值:
text()  // 取得所有元素的内容
text(val) // 设置所有匹配元素的内容

值:
val()   : //取得第一个匹配元素的当前值
val(val): //设置所有匹配元素的内容
val([val1, val2])// 设置多选的checkbox、多选selected的值

$("[name='hobby']").val(['basketball', 'football']);
$("#s1").val(["1", "2"])

链式获取值: 调用对象的方法--, 返回对象本身-

属性操作

#属性操作:
--》attr 静态获取属性值
attr(attrName)// 返回第一个匹配元素的属性值
attr(attrName, attrValue)// 为所有匹配元素设置一个属性值
attr({k1: v1, k2:v2})// 为所有匹配元素设置多个属性值
removeAttr()// 从每一个匹配的元素中删除一个属性

---》prop 动态获取属性值
checkbox和radio(用户输入内容)
prop() // 获取属性
removeProp() // 移除属性

prop和attr的区别:

attr全称attribute(属性) 
prop全称property(属性)

虽然都是属性,但他们所指的属性并不相同,attr所指的属性是HTML标签属性,而prop所指的是DOM对象属性,可以认为attr是显式的,而prop是隐式的。

attr的局限性,它的作用范围只限于HTML标签内的属性,而prop获取的是这个DOM对象的属性,选中返回true,没选中返回false。(能看到的属性和自定义属性)

对于返回布尔值的比如checkbox、radio和option的是否被选中都用prop。

文档处理

文档处理:--》换位 ,添加,删除,替换,复制

添加到指定元素内部的后面:
$(A).append(B)// 把B追加到A
$(A).appendTo(B)// 把A追加到B

添加到指定元素内部的前面:
$(A).prepend(B)// 把B前置到A
$(A).prependTo(B)// 把A前置到B

添加到指定元素外部的后面:
$(A).after(B)// 把B放到A的后面
$(A).insertAfter(B)// 把A放到B的后面

添加到指定元素外部的前面:
$(A).before(B)// 把B放到A的前面
$(A).insertBefore(B)// 把A放到B的前面

移除和清空元素:
remove()// 从DOM中删除所有匹配的元素。
empty()// 删除匹配的元素集合中所有的子节点。

替换:
replaceWith()
replaceAll()

克隆:
clone()// 参数
// clone方法加参数true,克隆标签并且克隆标签带的事件
// clone方法不加参数true,克隆标签但不克隆标签带的事件

事件

事件:

1.常用事件:
click(function(){...}) --》点击
hover(function(){...})---》浮动
blur(function(){...})--》失去焦点
focus(function(){...}) --》聚焦
change(function(){...}) --》改变内容
keyup(function(){...}) --》 松开键盘

2。事件绑定: 
结构: .on( events [, selector ],function(){})
    第一种语法结构:
            $(选择器).事件名(function(){
                // 事件代码
            })
    第二种语法结构    用处更广  
    $(选择器).on('事件名',function(){
        // 事件代码
    })
    

3.移除事件:
.off( events [, selector ][,function(){}])
off() 方法移除用 .on()绑定的事件处理程序

4.阻住后续事件的执行:

1. return false
2.e.preventDefault()  -->e:function(e)
    
    
注意:
    像click、keydown等DOM中定义的事件,我们都可以使用`.on()`方法来绑定事件,但是`hover`这种jQuery中定义的事件就不能用`.on()`方法来绑定了。

5.阻止事件冒泡:
--》当执行div标签内的span便签,则可以有树节点网上执行

$("span").click(function (e) {
        alert("span");
        e.stopPropagation();
    });
--》e.stopPropagation() : 只在本标签执行,不会往上

6.页面载入:
DOM载入就绪可以查询及操纵时绑定一个要执行的函数。是事件模块中最重要的一个函数,可以极大地提高web应用程序的响应速度。

$(document).ready(function(){
// 在这里写你的JS代码...
})

简写:
$(function(){
// 你在这里写你的代码
})

与window.onload的区别:
window.onload()函数有覆盖现象,必须等待着图片资源加载完成之后才能调用
jQuery的这个入口函数没有函数覆盖现象,文档加载完成之后就可以调用(建议使用此函数

7.事件委托:
--事件委托是通过事件冒泡的原理,利用父标签去捕获子标签的事件

表格中每一行的编辑和删除按钮都能触发相应的事件。
$("table").on("click", ".delete", function () {
  // 删除按钮绑定的事件
})
posted @ 2019-11-19 21:17  杨归元  阅读(98)  评论(0编辑  收藏  举报