jquery 中的 “破坏性” 操作是啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery 中的 “破坏性” 操作是啥意思相关的知识,希望对你有一定的参考价值。

破坏性操作是当一个jQuery函数被使用在一个对象后造成此对象的结构变化。

举个例子:
var obj = $("body").find("p");
在 body 没有被使用 find 之前,对象 obj 包括 body 和 body 之内的所有元素
但 body 在被使用 find 之后,对象 obj 只包括 p 元素,原来的其它元素已不复存在,也就是说 原来的对象 obj 的结构被破坏,或者说被修改。

实例:
$("#blog").find("p.title").css(fontWeight: "bold");

现在上面这行代码运行后剩下的是全部的 p,如果要继续对 $("#blog") 对象进行修改,例如设置 $("#blog") 的高度为200

$("#blog").find("p.title").css(fontWeight: "bold").css(height: 200); // 错误,这样写会修改 p 的高度
$("#blog").find("p.title").css(fontWeight: "bold").end().css(height: 200); // 正确
在破坏性操作之后可以使用 end() 来还原对象。

在一段代码声明后(;),jQuery会自动还原对象,破坏性操作只是在一段连贯的声明中起作用。
$("#blog").find("p.title").css(fontWeight: "bold");
// jQuery 自动 end()
$("#blog").css(height: 200);
等同上面连在一起写的代码。
参考技术A 链式编程被中断。就是不能一直再往后点了,因为当前对象的传递被破坏了,调用end()方法可以解决(可返回链被破坏前的对象) nextAll(),preAll(),sibilings()这些方法都是容易产生破坏性的。

关于jQuery,$(":button") 中的冒号是啥意思?

最近在学jQuery,不知道$(":button") 中的button前的冒号是什么意思?

我知道$("div.container")中的'.'号表示class, $("div #msg")中的'#'表示id, 那么$(":button") 中的':'表示什么呢?
我想问的是$(":button") 和 $("input:checked") 中的':'是什么含义? 什么时候要加':'冒号呢?

如: $("div.container")中的'.'号表示class, $("div #msg")中的'#'表示id。那么$(":button") 中的':'表示什么?

$(":button") 表示匹配所有的按钮。
$("input:checked")表示匹配所有选中的被选中元素(复选框、单选框等,不包括select中的option)。

$("div.container")中的'.'号表示class, $("div #msg")中的'#'表示id。那么$(":button") 中的':'表示类型(type),如$(":button") 表示类型为button的控件,$("input:checked")表示所有类型为选中的复选框元素。
参考技术A :在css中代表伪选择符,但是在jQuery里(因为jQuery里的选择器很多地方都使用css中的表示方法),这里就是固定用法,还有如下表单控件:具体的你搜一下就有很多说明。
:input
:text
:password
:radio
:checkbox
:submit
:image
:reset
:button
:file
:hidden

基本
:first
:last
:not
:even
:odd
:eq
:gt
:lt
:header
:animated
内容
:contains
:empty
:has
:parent
可见性
:hidden
:visible本回答被提问者采纳
参考技术B :button 表示选择任何按钮 (input[type=submit],input[type=reset],input[type=button]或button
:checked 表示选择已选中的复选框或单选按钮

在此:表示jQuery自定义选择器,比如还有:file :selected等等, 有问题可以hi我
参考技术C jQuery的过滤选择器

以上是关于jquery 中的 “破坏性” 操作是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

jquery函数中的索引是啥意思

关于jQuery,$(":button") 中的冒号是啥意思?

JQUERY中的scrollTop 和scrollleft到底是啥意思

js中提到的dom引用是啥意思

在 Javascript/jQuery 中,(e) 是啥意思?

使用带有破坏性方法的 jQuery end() 函数