jQuery框架之Style(一)

一、jQuery

jQuery相信前端开发者,再熟悉不过了。它是一个快速,简洁的Javascript框架。jQuery的宗旨:write Less,Do More!对于正在学习Html5的我来说,学习jQuery是必经之路。下面,就把学到的一些知识点与大家共勉。

二、Selector(选择器)

在jQuery中,我们会用到提供的一些选择器,以至于帮助我们更快找到指定的节点。不管什么选择器都是 $(xx)

1)id选择器

id就是用来查找元素的唯一标志,即元素的id属性。id是唯一的,每个页面只能有一个id值。

$("#id")

其实这个选择器内部实现,就是调用了js的原生代码 document.getElementById()

2)class选择器

class选择器就是通过class样式来获取元素节点。它不像id选择器那样,class选择器可以多选,所以效率就会第一点,有利有弊吧。

$(".class")

其实它就是原生js中getElementsByClassName()函数来实现的。

3)element选择器

元素选择器就是根据Html标记名称来获取所有元素的。

$("element")

它会查询到指定元素标签名下的所有节点,同样的 也可以用原生js方法来获取getElementsByTagName()

4)* 选择器

*号的意思 作为程序员 基本都能 想到吧,就是所有的意思:所有的元素

$(" * ")

其实 通过js的方法 document.getElementsByTagName() 中传递"*"也可以拿到。

5)层级选择器

层级选择器我理解的意思其实就是父子,兄弟姐妹,祖孙的关系。
即:子元素 后代元素 兄弟元素 相邻元素。

  1. 后代选择器 (空格标示)
// 后代选择器  即选中元素的 : 所有后代元素(儿子 孙子 曾孙子)
$("p  descendant") 
  1. 子选择器 (>)
// 子选择器 选择所有父元素的 指定的 直接  child元素
$("parent > child")
  1. 相邻兄弟选择器 (+)
// 选择所有 紧邻 在 pre元素后的 第一个 兄弟元素
$("pre + next")
  1. 一般兄弟选择器 (~)
// 选择所有 pre元素后的 所有 兄弟姐妹元素 必须具有相同的父辈。
$("pre ~ sibling")

PS:(这里我列举了一些常用的选择器 筛选选择器和css中的伪元素相识 即 以 : 开头。jQuery中的合集索引都是从 0 开始的 )

6)筛选选择器
  1. 选择第一个元素
// 选择第一个元素
$(":first")
  1. 选择最后一个元素
$(":last")
  1. 选择所有元素去除 不匹配 给定的选择器元素
//选择 没有选中属性的 input标签
$("input:not(:checked)")
  1. 选择匹配集合索引为index 的元素
$("p:eq(index)")
  1. 选择所有大于给定index的元素
$("p:gt(index)")
  1. 选择所有小于给定index的元素
$("p:lt(index)")
  1. 索引为偶数的元素 从index为0开始
$("p:even")
  1. 索引为奇数的元素 从index为0开始
$("p:odd")
  1. 选择所有标题元素 h1 - h2 -h3 .....
$(":header")
  1. 选择所有执行动画的元素
$(":animated")
7) 内容筛选选择器
  1. 选择所有包含 指定文本的元素
$(":contains(text)")
  1. 选择至少包含指定元素的元素
$(":has(ele)")
  1. 选择所有 包含 子元素或者文本的元素
// 子元素文本不能为空的元素
$(":paraent")
  1. 选择所有 不包含子元素的元素(包含文本节点)
// 无子元素 或者 有文本 的元素
$(":empty")
8) 属性选择器
  1. 选择指定属性是给定值的元素
//查找所有div中,属性name=p1的div元素
$("div[name = 'p1']")
  1. 选择指定属性包含一个给定字符串的元素 (或选择给定的属性是以包含某些值的元素)
//查找所有div中,有属性name中的值包含一个test字符串的div元素
$("div[name *= "test"]")
$("div[name *= "xx-test-xx"]")
9) 子元素筛选选择器
  1. 选择所有父级元素下的第一个子元素
// 它和 选择器 :frist 的区别就是  :first-child 即为每个父级元素匹配第一个子元素。  而:first只匹配一个元素
$(":first-child")
  1. 选择所有父级元素下的最后一个子元素
//// 它和 选择器 :last 的区别就是  :last-child 即为每个父级元素匹配最后一个子元素。  而:last只匹配一个元素
$(":last-child")
  1. 唯一子元素选择器
//如果某元素是唯一的子元素 它就会被选中
$(":only-child")
  1. 选择他们所有父元素的第n个子元素
//$(".last-div a:nth-child(2)") 查找class为last-div 下的第二个子元素
$(":nth-child") 
  1. 选择他们所有父元素的第n个子元素 计数从最后一个开始计数
//$(".last-div a:nth-last-child(2)") 查找class为last-div 下的倒数第二个子元素
$(":nth-last-child") 
10) 表单元素选择器
  1. 选择所有 input textarea select button 元素
$(":input") 
  1. 匹配所有文本框
$(":text")
  1. 匹配所有单选按钮
$(":radio")
  1. 匹配所有复选框
$(":checkBox")
  1. 匹配所有按钮
$(":button")

6.选取可用的表单元素

$(":enabled")

7.选取不可用的表单元素

$(":disabled")
  1. 选取被选中的<input>元素
$(":checked")
  1. 选取被选中的<option>元素
$(":selected")

三、属性、样式

1) attr设置属性

在jQuery中可以用attr()设置元素属性。

  1. attr(proName):获取属性的值
    2.attr(proName,vlaue):设置属性的值
    3.attr(proName,函数值):设置属性的函数值
    4.attr(attributes):设置多个属性 :{name : vlaue,name2:vlaue}
2) removeAttr移除属性
$("p").removeAttr(attName) // 移除p元素的某属性
3) 修改元素的html结构 或者文本 html() / text()
  • html()
    1.html() 不传参数 :即获得第一个匹配元素的html文档结构
    2.html(htmlstring): 设置每一个匹配元素的html内容
    3.html(function(index,oldHtml)):返回设置html内容的一个函数
  $("p").html(function(index,text){
            return '增加内容' + text
        })
  • text()
    获取每个匹配元素的文本内容,包括他的后代,也可以设置匹配元素的文本内容。其结果返回一个字符串,包含所有匹配元素的合并文本。
    1.text():获取匹配元素集合中每个元素的合并文本
    2.text(string) : 用于设置匹配元素的文本
    3.text(function(index,text))
  • html() 与 text() 异同
    1.html()处理的是元素内容,而text()处理的是文本内容
    2.html()只能用在html文档中 text()可用在xml和html中
4) val()

这个方法主要用于获取表单元素的值 :input、textarea、select
1.val()无参数 :获取匹配元素集合中第一个元素的当前值
2..val(v):设置匹配元素中每个元素的值
3.val(function):用来返回设置值的函数
当select有多个组时,.val()返回一个包含选择项的值的数组。
.val() .html() .text() 三个方法都可以用来读取指定元素的内容 ,html()读取的是html内容或者html标签 ,.text()只是获取纯文本包括其后代 ,.val()只是获取表单元素的值 并且只能用于表单。若html()用在多个元素上 只是获取第一个元素的值 .val()也是如此。但是.text()用在多个元素上时 是获取的所有元素文本的内容

5)增加样式addClass() 移除样式removeClass()
  • addClass()
    在html中 多个class样式 可以用空格隔开 addClass可以动态增加class名字,它并不会替换一个样式名,只是简单的添加一个样式到元素上
    1.addClass(className):为每个匹配元素增加一个或者多个样式名
    2.addClass(function(indecx,currentClass)):
        //通过className(fucntion)方法
        //这个函数返回一个或更多用空格隔开的要增加的样式名。
        //接收index 参数表示元素在匹配集合中的索引位置和html 参数表示元素上原来的 HTML 内容
 $("div").addClass(function(index,className) {

            //找到类名中包含了name的元素
            if(-1 !== className.indexOf('name')){
                //this指向匹配元素集合中的当前元素
                $(this).addClass('xxClass')
            }
        });
  • removeClass()
    移除一个元素上的class样式
    1.removeClass(className):移除一个 或者 多个用空格隔开的样式名
    2.removeClass(function(index,class)):返回一个 或者 多个将要移除的样式名字
6) 切换样式toggleClass()

即在addClass和removeClass之间的切换,存在就移除,不存在就添加
1.toggleClass(className):在匹配的元素集合中的每个元素切换一个或者多个样式类名
2.toggleClass(className,switch):switch布尔值,用于判断是否应该添加或者删除
3..toggleClass( function(index, class, switch) [switch ] ):用来返回在匹配的元素集合中的每个元素上用来切换的样式类名的一个函数。接收元素的索引位置和元素旧的样式类作为参数

7) 切换操作css()

.css()获取元素样式属性或者设置元素css属性

  • 获取
    1.css(proName):获取匹配元素的属性
    2.css(propertyNames):传递一个数组
  • 设置
  1. css(proName,vlaue)
    2.css( propertyName, function ):可以传入一个回调函数,返回取到对应的值进行处理
    3.css( properties ):可以传一个对象,同时设置多个样式
    css({ 'font-size' :"15px", "background-color" :"#40E0D0", "border" :"1px solid red" })

四、总结

jQuery还有好多方法,我这里总结了一下jQuery一下操作样式的方法,后续会总结一些,jQuery事件,jQuery动画等。最近学前端学的感觉入门了不少,如果你想学一门新的语言,那就应该去了解实践它,不是你看看就可以学会的。在上篇文章中,我推荐的那本JavaScript的书,写的很好,我基本每天中午午睡前都看那么几页,在我看完后,会写一下心得,到时候会分享出来一起学习。
如果觉得我的文章写的不错,给个小❤️吧。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,752评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,100评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,244评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,099评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,210评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,307评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,346评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,133评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,546评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,849评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,019评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,702评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,331评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,030评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,260评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,871评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,898评论 2 351