jQuery에서 일반적으로 사용되는 선택기에 대한 자세한 분석

黄舟
풀어 주다: 2017-07-17 16:12:57
원래의
997명이 탐색했습니다.

이 글에서는 참고용으로 jQuery에서 일반적으로 사용되는 선택기의 특정 코드를 공유합니다. 구체적인 내용은 다음과 같습니다

1. jQuery: (jQuery를 사용할 때 사용하는 버전 번호를 명시해야 합니다.)

네이티브를 사용하여 캡슐화됩니다. 일반적으로 사용되는 메소드의 JS 클래스 라이브러리(브라우저 호환성 문제 해결)

2. jQuery

selector

에서 제공되는 메소드 해당 규칙의 내용(ID, 태그 이름, 스타일 클래스 이름...)을 전달하여 페이지에 지정된 요소/요소 컬렉션

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <div id=&#39;div1&#39;>
    <div>
      <span></span>
      <span></span>
      <span></span>
    </div>
    <div></div>
    <div id=&#39;div3&#39;></div>
    <ul>
      <li></li>
      <li></li>
      <li></li>
    </ul>
 
  </div>
   
 
  <script>
    //原生JS获取到的结果属于元素对象/元素集合/节点集合...他们可以使用浏览器为其提供的那些天生自带的属性和方法
    //原生的JS对象不能直接的使用jQuery中提供的属性和方法
    var oDiv = document.getElementById(&#39;div1&#39;)
    oDiv.clientWidth
    oDiv.getAttribute
    //jq获取到的结果是一个jQuery对象,可以使用jQuery里面提供的属性和方法,但是不能直接的使用浏览器内置的属性和方法
    var $oDiv = jQuery("#div1")//$("#div1")
    $oDiv.innerWidth();
    $oDiv.attr
 
    //关于原生JS对象和jQuery对象之间的转换
      //1)、原生的转变成jQuery:$(原生JS对象)
      $(oDiv)
      //2)、jQuery转化成原生:直接通过索引获取对应的元素对象即可
      $oDiv[0]
      $oDiv.get(0)//<==>$oDiv[0]都是通过索引来获取指定位置的元素(JS原生对象)
 
    //更多的jQuery选择器
    $(&#39;#div1&#39;)
    $(&#39;div&#39;)
    $(&#39;.w100&#39;)
    $(&#39;*&#39;)
    $(&#39;#div1,div,.w100&#39;)//把每一个选择器获取到的jQuery对象最后融合在一起,最后一起获取到
    $(&#39;#div1 li&#39;)//在子子孙孙级中进行查找
    $(&#39;#div1>li&#39;)//在子级中进行查找
    $(&#39;#div3+&#39;)//获取它的下一个弟弟
    $(&#39;#div3+ul&#39;)//获取它的下一个弟弟并且标签名是ul的
    $(&#39;#div3~&#39;)//获取它的所有的弟弟元素
    $(&#39;#div3~ul&#39;)//获取它的所有的弟弟元素并且标签名为ul的
    $(&#39;#div1>div:not(.w100)&#39;)//#div1下的所有子集div样式类名不包含w100的
    $(&#39;#div1>div:eq(0)&#39;)//通过索引获取到集合中的某一个,但是获取到的结果依然是一个jQuery对象(而get方法也是通过索引获取,但是获取到的是一个JS原生对象)
    $(&#39;#div1>div:gt(1)&#39;)//大于索引1的(不包含索引1的)
    $(&#39;#div1>div:lt(1)&#39;)//小于索引1的(不包含索引1的)
    $(&#39;#div1 li:contains("我")&#39;)//获取所有的li内容包含“我” 的
    $(&#39;#div1 div:has(ul)&#39;)//在所有的div中包含ul的
    $(&#39;#div1>*:nth-child(1)&#39;)//获取所有的子元素的第一个
    $(&#39;#div1>*:eq(1)&#39;)//获取所有的子元素的第二个(索引为1)
  </script>
</body>
</html>
로그인 후 복사

요소 선택은 모든 작업의 ​​전제 조건입니다. jQuery에서 $() 함수의 가장 강력하고 일반적으로 사용되는 기능 중 하나는 선택기를 사용하여 DOM 요소를 선택하는 것입니다. 다음은 매우 일반적으로 사용되는 일부 jquery 선택기에 대한 요약입니다.

1. jQuery 선택기의 기본 구조

$(&#39;选择器&#39;)
$(&#39;选择器 上下文&#39;)
로그인 후 복사

2. 기본 css 선택기 사용하기

기본 CSS 선택기의 경우 CSS 선택기의 자세한 설명을 살펴보세요. CSS 선택기를 사용하는 가장 기본적인 방법은 다음과 같습니다.

2.1 Element Selector

$(&#39;a&#39;); //选择所有a元素
$(&#39;div&#39;);  //选择所有div元素
$(&#39;p&#39;);  //选择所有p元素
로그인 후 복사

물론 원하는 경우 jQuery를 사용하면 쉼표를 사용하여 여러 선택기를 하나의 선택기로 결합할 수도 있습니다.

$(&#39;a,div,p&#39;);
로그인 후 복사

이는 위의 3줄 코드와 동일한 효과를 제공합니다.

2.2 클래스 선택기

$(&#39;div.myClass&#39;);  //所有拥有myClass类的div元素
$(&#39;p.myClass&#39;);  //所有拥有myClass类的p元素
$(&#39;*.myClass&#39;);  //拥有myClass类的所有类型元素
로그인 후 복사

일반적으로 특정 카테고리의 모든 요소를 ​​선택하려면 다음과 같이 와일드카드 *를 생략합니다. 글쓰기 방식 .

또한 일부 요소에는 두 개 이상의 클래스가 있을 수 있습니다.

$(&#39;.myClass&#39;);  //拥有myClass类的所有类型元素
로그인 후 복사

이렇게 하면 myClass1 및 myClass2 클래스가 모두 있는 div 요소가 선택됩니다. 물론 선택한 div 요소에는 다른 클래스가 있을 수도 있습니다. 즉, 다음 div가 의심 없이 선택됩니다.

$(&#39;div.myClass1.myClass2&#39;);
로그인 후 복사

2.3

ID 선택기

3과 결합됨 컨텍스트 선택기

3.1

Descendant Selector

여기에서 시작하여 다음과 같이 약간 더 어려운 선택을 시작하세요.

$(&#39;table#myID&#39;);  //id为myID的table元素
로그인 후 복사

이렇게 하면 myUl 클래스의 ul 요소가 있는 모든 li 하위 요소가 선택됩니다. 한 입에 쏙쏙 들어옵니다. 아래 코드를 보세요:

html

$(&#39;ul.myUl li&#39;);
로그인 후 복사

여기서 $('ul.myUl li')를 통해 모든 li 요소가 선택됩니다. 모두 참고하세요! 모든 li 요소는

    ...
의 자손이기 때문입니다. 직계비속이든, 손자이든, 증손자이든 상관없습니다.

사실 위의 예는 myUl 클래스로 ul 요소의 모든 li 하위 요소의 의미를 완전히 설명하기에는 충분하지 않습니다. myUl 클래스에는 ul 요소가 두 개 이상 있을 수 있으므로 다음과 같이

html

<ul class="myUl">
  <li><a href="#"></a>
    <ul>
      <li>1</li>
      <li>2</li>
      <li>3</li>
    </ul>
  </li>
  <li>
    <ul>
      <li>one</li>
      <li>two</li>
      <li>three</li>
    </ul>
  </li><ul>
로그인 후 복사

$('ul.myUl li')도 위 코드의 모든 li 요소를 선택합니다. 위 코드의 모든 li 요소는 ul.myUl이 2개 있더라도 ul.myUl의 하위 요소이기 때문입니다. 이제 myUl 클래스를 사용하여 ul 요소의 모든 li 하위 요소의 의미를 이해할 수 있습니다!

후손 선택기는 실제로 다음과 같이 특정 요소의 후손뿐만 아니라 특정 요소의 후손의 후손도 선택할 수 있습니다(좀 이상하게 들림).

<ul class="myUl">
  <li><a href="#"></a>
    <ul>
      <li>1</li>
      <li>2</li>
      <li>3</li>
    </ul>
  </li>
  <li>
    <ul>
      <li>one</li>
      <li>two</li>
      <li>three</li>
    </ul>
  </li><ul>
    로그인 후 복사

    이 방법으로 모든 ul 요소의 모든 li 후손 myUl 클래스를 사용하면 요소의 모든 하위 요소가 선택됩니다. xx의 후손이 하나 더 있지만 위의 분석과 동일하므로 자세한 내용은 다루지 않겠습니다.

    위 내용은 jQuery에서 일반적으로 사용되는 선택기에 대한 자세한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    관련 라벨:
    원천:php.cn
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    최신 이슈
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿