今天下午搞了中秋晚会,还有抽奖,奖品:星baba、炸鸡全家桶、电影券、超大蟹黄包、随机money的红包…不过我这种非洲人就是重在参与奖了QAQ 不过!我的室友中奖了!!!
结束之后和室友骑小电动去市区吃海底捞了,搞到晚上十点半多,这边市区晚上十点半已经可以说是几乎没人了的程度,这边入秋也很早,风也很大。所以会先写一部分今天发布,然后再往里面添加内容的!
JQuery的选择器有哪些?
这内容属实有点多,先记一些用的比较多的,其他的可以慢慢来,一下子记这么多要命
一、基本选择器:
基本选择器是jquery中最常用也是最简单的选择器,通过元素的id、class和标签名等来查找DOM元素。
1、ID选择器#id
根据给定的id匹配一个元素,返回单个元素(在网页中,id名称是不能重复的)
$("#test")选取id为test的元素
2、类选择器.class
根据给定的类名匹配元素,返回元素合集
$(".test")选取所有class名为test的元素
3、元素选择器element
根据给定的元素名匹配元素,返回元素合集
$(“p”)选取所有的
<p>
的元素
4、*
匹配所有元素,返回元素合集
$(" * ")选取所有的元素
5、selector1,selector2,......,selectorN
将每个选择器的元素匹配到的元素合并后一起返回,返回合并后的元素合集。
$(" p,span,p.myClass") 选取所有
<p><span>和class名为myClass的<p>标签
元素集合
二、层次选择器
根据层次关系获取特定元素
1、后代选择器
$(“p span”) 选取
<p>
元素里的所有的<span>
元素(注:后代选择器选择父元素所有指定选择的元素,不管是儿子级,还是孙子级)
2、子选择器$(“parent>child”)
$(“p>span”) 选择
<p>
元素下的所有<span>
元素 (注:子选择器只选择直属于父元素的子元素)
3、同辈选择器$(“prev+next”)
选取紧接在prev元素后面的next元素,返回元素集合
$(".one+p") 选取class为one的下一个
<p>
同辈元素集合
4、同辈选择器$(“prev~siblings”)
选取prev元素后的所有siblings元素,返回元素集合
$("#two~p")选取id为two的元素后所有
<p>
同辈元素集合
三、过滤选择器
1、基本过滤选择器
(1):first
选取第一个元素,返回单个元素
$(“p:first”) 选取所有
<p>
元素中第一个<p>
元素
(2):last
选取最后一个幻速,返回单个元素
$(“p:last”) 选取所有
<p>
元素中最后一个<p>
元素
(3):not(selector)
去除所有与给定选择器匹配的元素,返回元素集合
$(“input:not(.myClass)”) 选取class不是myClass的
<input>
元素
(4) :even
选取索引是偶数的所有元素,索引从0开始,返回元素集合
(5) :odd
选取索引是奇数的所有元素,索引从0开始,返回元素集合
(6) :eq(index)
选取索引等于index的元素,索引从0开始,返回单个元素
(7) :gt(index)
选取索引大于index的元素,索引从0开始,返回元素集合
(8) :lt(index)
选取索引小于于index的元素,索引从0开始,返回元素集合
(9) :focus
选取当前获取焦点的元素
2、内容过滤选择器
(1):contains(text)
选取含有文本内容为text的元素,返回元素集合
$(“p:contains(‘我’)”) 选取含有文本“我”的元素
(2):empty
选取不包含子元素或者文本元素的空元素,返回元素集合
$(“p:empty”) 选取不包含子元素或者文本元素的空
<p>
元素(<p></p>)
(3):has(selector)
选取含有选择器所匹配的元素的元素,返回元素集合
$(“p:has§”) 选取含有
<p>
元素的<p>
元素(<p><p/></p>)
(4):parent
选取含有子元素或者文本的元素,返回元素集合
$(“p:parent”) 选取含有子元素或者文本元素的
<p>
元素(<p><p/></p>或者<p>文本</p>)
3、可见性过滤选择器
(1):hidden
选取所有不可见的元素,返回元素集合
(2):visible
选取所有可见的元素,返回元素集合
4、属性过滤选择器(返回元素集合)
(1)[attribute]
$(“p[id]”) 选取拥有id属性的p元素
(2)[attribute=value]
$(“input[name=text]”) 选取拥有name属性等于text的input元素
(3)[attribute!=value]
$(“input[name!=text]”) 选取拥有name属性不等于text的input元素
(4)[attribute^=value]
$(“input[name^=text]”) 选取拥有name属性以text开始的input元素
(5)[attribute$=value]
( " i n p u t [ n a m e ("input[name ("input[name=text]") 选取拥有name属性以text结束的input元素
(6)[attribute*=value]
$(“input[name*=text]”) 选取拥有name属性含有text的input元素
(7)[attribute~=value]
$(“input[class~=text]”) 选取拥有class属性以空格分割的值中含有text的input元素
(8)[attribute1][attribute2][attributeN]
合并多个属性过滤选择器
5、表单对象属性过滤选择器(返回元素集合)
(1):enabled
选取所有可用元素
(2):disabled
选取所有不可用元素
(3):checked
选取所有被选中的元素(单选框,复选框)
$(“input:checked”) 选取所有被选中的
<input>
元素
(4):selected
选取所有被选中的选项元素(下拉列表)
JQuery中插入节点的方法
append() 向每个匹配的元素内部追加内容
appendTo() 将所有匹配的元素加到指定元素中。实际上,该方法是颠倒了常规的
(
A
)
.
a
p
p
e
n
d
(
B
)
操
作
,
将
A
追
加
到
B
中
p
r
e
p
e
n
d
(
)
向
每
个
匹
配
的
元
素
内
部
前
置
内
容
p
r
e
p
e
n
d
T
o
(
)
将
所
有
匹
配
的
元
素
前
置
到
指
定
的
元
素
中
。
该
方
法
是
颠
倒
了
(A).append(B)操作,将A追加到B中 prepend() 向每个匹配的元素内部前置内容 prependTo() 将所有匹配的元素前置到指定的元素中。该方法是颠倒了
(A).append(B)操作,将A追加到B中prepend()向每个匹配的元素内部前置内容prependTo()将所有匹配的元素前置到指定的元素中。该方法是颠倒了(A).prepend(B)操作,原本是B前置到A中,现在是将A前置到B中
after() 在每个匹配的元素之后插入内容
insertAfter() 将所有匹配的元素插入到指定元素后面。该方法是颠倒了常规的
(
A
)
.
a
f
t
e
r
(
B
)
的
操
作
,
即
不
是
讲
B
插
入
到
A
后
面
,
而
是
将
A
插
入
到
B
后
面
b
e
f
o
r
e
(
)
在
每
个
匹
配
的
元
素
之
前
插
入
内
容
i
n
s
e
r
t
B
e
f
o
r
e
(
)
将
所
有
匹
配
的
元
素
插
入
到
指
定
的
元
素
的
前
面
。
该
方
法
是
颠
倒
了
常
规
的
(A).after(B)的操作,即不是讲B插入到A后面,而是将A插入到B后面 before() 在每个匹配的元素之前插入内容 insertBefore() 将所有匹配的元素插入到指定的元素的前面。该方法是颠倒了常规的
(A).after(B)的操作,即不是讲B插入到A后面,而是将A插入到B后面before()在每个匹配的元素之前插入内容insertBefore()将所有匹配的元素插入到指定的元素的前面。该方法是颠倒了常规的(A).before(B)的操作,即不是将B插入到A前面,而是将A插入到B前面
JS中函数防抖和节流的区别
函数节流是指一定时间内js方法只执行一次
函数防抖是指频繁触发的情况下,只有足够的空闲空间,才执行一次
函数节流是声明一个变量当标志位,记录当前代码是否在执行,如果正在执行,取消这次方法执行直接return,如果空闲,正常触发方法执行
函数防抖是需要一个延时器来辅助实现,延迟执行需要执行的代码,如果方法多次触发,把上次记录的延迟执行代码用cleartimeout清除掉,重新开始,如果计时完毕,没有方法来访问触发则执行代码
Vue中常用的修饰符有哪些?
修饰符:
.lazy 改变触发后,光标离开input输入框的时候值才会改变
.number 将输出字符转换为number类型
.trim 自动过滤用户输入的首位空格
事件修饰符:
.stop 阻止点击事件冒泡,相当于原生js中的event.stopPropagation()
.prevent 防止执行预设的行为,相当于原生js中的event.prevetnDefault()
.capture 添加事件侦听器时使用事件捕获模式,谁有该事件修饰符就先触发谁
.self 只会触发自己范围内的事件,不包括子元素
.once 只执行一次
键盘修饰符:
.enter 回车键 .tab制表键
.esc 返回键 .space 空格键
.up/down/left/right 向上/下/左/右键
系统修饰符:
.ctrl .alt .shift .meta
v-text和{{}}和v-html的区别?
{{}} 将数据解析为纯文本,不能显示输出html
v-html 可以渲染输出html
v-text 将数据解析为纯文本,不能输出真正的html,与花括号的区别是在页面加载时不显示双花括号
v-text操作页面元素中的纯文本内容,{{}}是他的另一种写法。
v-text与{{}}区别:
v-text与{{}}等价,{{}}叫模板插值,v-text叫指令。
有一点区别就是,在渲染的数据比较多的时候,可能会把大括号显示出来,俗称屏幕闪动:
v-on可以绑定多个方法吗?
可以!
如果绑定多个事件,可以用键值对的形式 事件类型:事件名
如果绑定的是多个相同的事件,直接用逗号分开就行
Vue循环中key值的作用
Key值的存在保证了唯一性,vue在执行的时候,会对节点进行检查,如果没有key值,那么vue检查到这里有dom节点,就会对内容清空并且重新赋值,如果有key值存在,那么会对新老节点进行比较,比较两者key值是否相同,来进行调换位置或者删除等操作。
什么是计算属性
描述一个值依赖了其他的值,当它依赖的这个值发生改变的时候,就更新DOM
当在模板中把数据绑定到一个计算属性上的时候,vue会在他依赖的任何值导致该计算属性改变时更新DOM
每个计算属性都包括一个getter和setter,读取时触发getter,修改时触发setter
Vuex是什么?属性有哪些?
vuex是一个专门为vue.js应用程序开发的状态管理器,通过创建一个集中的数据存储,方便程序中的所有组件进行访问,就是vue的状态管理工具。
vuex有五个属性:state、getters、mutations、actions、modules
state数据存放池,一般对应vue中的data。state里存放的数据是响应式的,state数据发生改变,对应这个数据的组件也会发生改变,用this.$store.state.xxx
调用
getters相当于store的计算属性,主要是对state中的数据进行过滤,用this.$store.getters.xxx
调用
mutations处理数据逻辑的方法,当触发事件想改变state数据的时候使用,用this.$store.commit
调用,给这个方法添加一个参数就是mutation的载荷(payload)
actions异步数据操作,但是通过mutation来操作,用this.$store.dispatch
触发,actions也支出载荷
使用场景:组件之间的状态,登录状态,加入购物车,音乐播放
vue路由模式中的hash和histroy
Hash模式下地址栏会有#,histroy模式下没有,该模式下刷新会出现404的情况,需要后台配置。
使用JS来对locationn.hash进行赋值,改变url的hash值。
可以使用hashchange事件来监听hash值的变化。
HTML5 提供了 History API 来实现 URL 的变化。
其中最主要的 API 有以下两个:history.pushState() 和 history.repalceState()。
这两个 API 可以在不进行刷新的情况下,操作浏览器的历史纪录。
唯一不同的是,前者是新增一个历史记录,后者是直接替换当前的历史记录。