jquery获取css中的选择器(实例讲解)

前端技术 2023/09/09 JavaScript

开始写之前先复习一下元素和节点的区别:

元素是W3C文档对象模型(DOM)当中使用最广泛的节点之一。

元素拥有关联的“属性”。

XmlElement类拥有许多方法来访问它的“属性”(GetAttribute, SetAttribute, RemoveAttribute, GetAttributeNode, 等等)。

你也可以使用“Attributes”属性来返回一个支持“名字”或者“序号”访问的“XML属性集”。

那么,从XmlElement类的解释来看,我们很容易就知道XmlNode和XmlElement类的区别了:

XmlElement类是只拥有“属性”的一个节点,而XmlNode则是不仅拥有“属性”,还拥有“子节点”的一个节点。

所以,我们在使用它们的时候,如果你需要获取或者设置节点中的innerText或者innerXml,那么你就需要用XmlNode;而如果你需要获取或者设置节点本身的属性(参数)的时候,你就需要用XmlElement,当然,你也可以用(XmlElement)对XmlNode进行转换得到。

下面开始进入正题

在javascript中,除了对id的选择器比较好取一些,其他的都不是很好取,jquery在这一块要比它优秀多了,提供了很多的获取方法主要包括

1、基础选择器(主要包括标签选择器,id选择器,类选择器,通用选择器,组选择器)

$(\"#divId\") 获取ID为divId的元素
 $(\"a\") 获取所有<a>元素

$(\".bgRed\") 获取所用CSS类为bgRed的元素

$(\"*\")获取页面所有元素

$(\"#divId, a, .bgRed\")获取三个满足条件的选择器

2、层级选择器(主要包括子元素选择器、后代元素选择器、紧邻同辈元素选择器、相邻同辈元素选择器)

2.1   子元素选择器>  ===============选择儿子元素

复制代码 代码如下:

<ul class=\"topnav\">
    <li>Item 1</li>
    <li>Item 2 
        <ul><li>Nested item 1</li><li>Nested item 2</li><li>Nested item 3</li></ul>
       </li>
    <li>Item 3</li>
</ul>

<script>    $(\"ul.topnav > li\").css(\"border\", \"3px double red\");</script>

这是官方的代码,可以参考以下其用法

2.2   后代选择器 直接用空格表示 不仅包括儿子还包括孙子........===============选择后代元素

复制代码 代码如下:

 <form>
    <div>Form is surrounded by the green outline</div>
    <label>Child:</label>
    <input name=\"name\" />

    <fieldset>
      <label>Grandchild:</label>
      <input name=\"newsletter\" />
    </fieldset>

  </form>
  Sibling to form: <input name=\"none\" />
<script>    $(\"form input\").css(\"border\", \"2px dotted blue\");</script>

2.3    紧邻同辈元素选择器 所有符合条件的都可以会被选择 主要是选择一个元素之后的平行元素 ===============选择指定元素的下一个平辈元素
复制代码 代码如下:

   <form>

    <label>Name:</label>
    <input name=\"name\" />
    <fieldset>
      <label>Newsletter:</label>

      <input name=\"newsletter\" />
    </fieldset>
  </form>
  <input name=\"none\" />
<script>$(\"label + input\").css(\"color\", \"blue\").val(\"Labeled!\")</script>

2.4  相邻同辈元素选择器 ===============选择指定元素的所有指定的平辈元素,可以隔几个不是指定的元素
复制代码 代码如下:

  <div>div (doesn\'t match since before #prev)</div>
  <span id=\"prev\">span#prev</span>
  <div>div sibling</div>

  <div>div sibling <div id=\"small\">div niece</div></div>
  <span>span sibling (not div)</span>
  <div>div sibling</div>
<script>$(\"#prev ~ div\").css(\"border\", \"3px groove blue\");</script>

3、表单选择器主要选择表单、用的时间要注意$(\":input\")注意引号里面的冒号也可以选择类型如$(\":button\")不过多介绍

4、基本过滤器主要包括

名称 说明 举例
:first 匹配找到的第一个元素 查找表格的第一行:$(\"tr:first\")
:last 匹配找到的最后一个元素 查找表格的最后一行:$(\"tr:last\")
:not(selector) 去除所有与给定选择器匹配的元素 查找所有未选中的 input 元素: $(\"input:not(:checked)\")
:even 匹配所有索引值为偶数的元素,从 0 开始计数 查找表格的1、3、5...行:$(\"tr:even\")
:odd 匹配所有索引值为奇数的元素,从 0 开始计数 查找表格的2、4、6行:$(\"tr:odd\")
:eq(index) 匹配一个给定索引值的元素
注:index从 0 开始计数
查找第二行:$(\"tr:eq(1)\")
:gt(index) 匹配所有大于给定索引值的元素
注:index从 0 开始计数
查找第二第三行,即索引值是1和2,也就是比0大:$(\"tr:gt(0)\")
:lt(index) 选择结果集中索引小于 N 的 elements
注:index从 0 开始计数
查找第一第二行,即索引值是0和1,也就是比2小:$(\"tr:lt(2)\")
:header 选择所有h1,h2,p一类的header标签. 给页面内所有标题加上背景色: $(\":header\").css(\"background\", \"#EEE\");
:animated 匹配所有正在执行动画效果的元素 只有对不在执行动画效果的元素执行一个动画特效:

$(\"#run\").click(function(){
  $(\"div:not(:animated)\").animate({ left: \"+=20\" }, 1000);
});


5、内容过滤器(主节点的子节点为文本节点)

名称 说明 举例
:contains(text) 匹配包含给定文本的元素 查找所有包含 \"John\" 的 div 元素:$(\"div:contains(\'John\')\")
:empty 匹配所有不包含子元素或者文本的空元素 查找所有不包含子元素或者文本的空元素:$(\"td:empty\")
:has(selector) 匹配含有选择器所匹配的元素的元素 给所有包含 p 元素的 div 元素添加一个 text 类: $(\"div:has(p)\").addClass(\"test\");
:parent 匹配含有子元素或者文本的元素 查找所有含有子元素或者文本的 td 元素:$(\"td:parent\")

6、可见性过滤器  Visibility Filters

本文地址:https://www.stayed.cn/item/23640

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。