jQuery-属性相关操作

jQuery内容选择器
  • :empty
    找到既没有文本内容也没有子元素的指定元素,返回集合元素
<script>
    $(function () {
      // 找到既没有文本内容也没有子元素的div
      var $div = $("div:empty");
      console.log($div);
     });
</script>
  • :parent
    找到有文本内容或有子元素的指定元素,返回集合元素
<script>
    $(function () {
      // 找到既有文本内容或有子元素的div
      var $div = $("div:parent");
      console.log($div);
     });
</script>
  • :contains(text)
    找到包含指定文本内容的指定元素,返回集合元素
<script>
    $(function () {
      // 找到包含我是div的div
      var $div = $("div:contains('我是div')");
      console.log($div);
     });
</script>
  • :has(selector)
    找到包含指定子元素的指定元素,返回集合元素
<script>
    $(function () {
      // 找到包含p标签的div
      var $div = $("div:has('p')");
      console.log($div);
     });
</script>
jQuery选择器
  • id选择器
    根据给定的id匹配一个元素,返回单个元素
<script>
    $(function () {
      // 找到id为box的元素
      var $box = $("#box");
      console.log($box);
     });
</script>
  • 类选择器
    根据给定的类名匹配元素,返回找到的元素集合
<script>
    $(function () {
      // 找到所有类名box的元素
      var $box = $(".box");
      console.log($box);
     });
</script>
  • 元素选择器
    根据给定的元素名称匹配元素,返回找到的元素集合
<script>
    $(function () {
      // 找到所有<p>元素
      var $ps = $("p");
      console.log($ps);
     });
</script>
  • 通配符选择器
    匹配所有元素,返回找到的元素集合
<script>
    $(function () {
      var $eles = $("*");
      console.log($eles);
     });
</script>
  • 并集选择器
    将所有选择器匹配到的元素合并后一起返回,返回找到的元素集合
<script>
    $(function () {
      // 选取所有<div>元素,所有<span>元素和所有类名为box元素
      var $eles = $("div,span,.box");
      console.log($eles);
     });
</script>
  • 后代选择器
    选取指定元素的所有后代元素(包括孙子/重孙子等),返回找到的元素集合
<script>
    $(function () {
      // 选取<div>元素里所有的<span>元素
      var $eles = $("div span");
      console.log($eles);
     });
</script>
  • 子元素选择器
    找到指定元素的所有直接子元素,返回找到的元素集合
<script>
    $(function () {
      // 选取<div>元素下元素名称是<span>的直接子元素
      var $eles = $("div>span");
      console.log($eles);
     });
</script>
  • 相邻兄弟选择器
    选取某个元素后面所有紧跟的那个元素,没有级别之分,返回找到的元素集合
<script>
    $(function () {
      // 选取类名为box后面所有<div>元素
      var $eles = $(".box+div");
      console.log($eles);
     });
</script>
  • 通用兄弟选择器
    匹配某个元素之后的所有指定的同级元素,返回找到的元素集合
<script>
    $(function () {
      // 选取类名为box元素后面与其同级的div元素
      var $eles = $(".box~div");
      console.log($eles);
     });
</script>
属性和属性节点
  • 属性
    • 属性就是对象身上的变量
    • 只要对象身上都可以添加属性(无论是自定义对象,还是DOM对象)
  • 属性节点
    • 在编写HTML代码时,在HTML标签中添加的属性就是属性节点
  • 操作属性与属性节点
// 添加或修改属
对象.属性名称 = 值;
对象["属性名称"] = 值;
// 获取属性
对象.属性名称
对象["属性名称"]
// 获取属性节
DOM对象.getAttribute("属性节点名称")
// 设置属性节点
DOM对象.setAttribute("属性节点名称", "值");
  • 属性和属性节点有什么区别
    任何对象都有属性, 但是只有DOM对象才有属性节点
jQuery中的attr和prop方法
  • attr(name|pro|key,val|fn)
    • 获取或者设置属性节点的值
    • 可以传递一个参数, 也可以传递两个参数
    • 如果传递一个参数, 代表获取属性节点的值
    • 如果传递两个参数, 代表设置属性节点的值
    • 如果是获取:无论找到多少个元素, 都只会返回第一个元素指定的属性节点的值
    • 如果是设置:找到多少个元素就会设置多少个元素
    • 如果是设置:如果设置的属性节点不存在, 那么系统会自动新增
<script>
    $(function () {
        // 获取标签为span的class属性节点的值 
        console.log($("span").attr("class"));
        // 设置标签为span的class属性节点的值为box
        $("span").attr("class", "box");
        // 增加一个属性节点abc,取值为123
        $("span").attr("abc", "123");
     });
</script>
  • removeAttr(name)
    • 用于删除指定属性节点
    • 会删除所有找到元素指定的属性节点
<script>
    $(function () {
        // 删除所有span标签的class和name属性节点
        $("span").removeAttr("class name");
     });
</script>
  • prop(n|p|k,v|f)
    • 用于设置或者获取元素的属性值
    • 设置属性时,会设置所有找到元素的属性
    • 获取属性时,只会获取找到第一个元素的属性
<script>
    $(function () {
        // 设置找到的第一个span标签的demo属性节点
        $("span").eq(0).prop("demo", "it666");
        // 获取找到的第一个span标签的demo属性节点
        $("span").eq(0).prop("demo");
     });
</script>
  • removeProp(name)
    • 用于删除指定属性节点
    • 会删除所有的找到的元素属性
<script>
    $(function () {
        // 删除所有span标签的demo属性节点
        $("span").removeProp("demo");
     });
</script>
  • attr方法和prop方法区别
    • attrprop即可以操作属性也可以操作属性节点
    • 官方推荐在操作属性节点时,具有truefalse两个属性的属性节点,如checked, selected 或者disabled 使用prop(),其他的使用attr()
    • 因为如果具有truefalse两个属性的属性节点,如果没有编写默认attr返回undefined,而prop返回false
jQuery类操作相关方法
  • addClass(class|fn)
    • 给元素添加一个或多个类
    • 如果要添加多个, 多个类名之间用空格隔开即可
<script>
    $(function () {
         // 给div添加class1 和 class2两个类
         $("div").addClass("class1 class2");
     });
</script>
  • removeClass([class|fn])
    • 删除一个类
    • 如果想删除多个, 多个类名之间用空格隔开即可
<script>
    $(function () {
         // 删除div的class1
         $("div").removeClass("class1");
     });
</script>
  • toggleClass(class|fn[,sw])
    • 切换类
    • 存在就删除不存在就添加
<script>
    $(function () {
         // 如果有class3就删除,不存在就天添加
         $("div").removeClass("class3");
     });
</script>
jQuery文本值相关的方法
  • html([val|fn])
    • 添加或获取元素中的HTML,相当于JS中的innerHTML
  • text([val|fn])
    • 添加或获取元素中的文本,相当于JS中的innerText
    • text方法能做的html方法都能做,所以一般使用html方法
  • val([val|fn|arr])
    • 添加或获取元素value属性的值
<script>
    $(function () {
        $(".box1").html("<p>我是段落<span>我是span</span></p>");
        $(".box2").text("<p>我是段落<span>我是span</span></p>");
        console.log($("input").val());;
     });
</script>
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,924评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,902评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,716评论 0 239
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,783评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,166评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,510评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,784评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,476评论 0 196
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,196评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,459评论 2 243
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,978评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,321评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,964评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,046评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,803评论 0 193
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,530评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,420评论 2 265

推荐阅读更多精彩内容

  • 一、样式篇 第1章 初识jQuery (1)环境搭建 进入官方网站获取最新的版本 http://jquery.co...
    凛0_0阅读 3,277评论 0 44
  • Attribute: $("p").addClass(css中定义的样式类型); 给某个元素添加样式 $("img...
    扑克脸_457e阅读 544评论 0 1
  • $(”p”).addClass(css中定义的样式类型); 给某个元素添加样式 $(”img”).attr({sr...
    专注寒冰三千岁阅读 450评论 0 4
  • 一:认识jquery jquery是javascript的类库,具有轻量级,完善的文档,丰富的插件支持,完善的Aj...
    xuguibin阅读 1,630评论 1 7
  • 第一章 jQuery简介 1-1 jQuery简介 1.简介 2.优势 3.特性与工具方法 1-2 环境搭建 进入...
    mo默22阅读 1,540评论 0 11