>  기사  >  웹 프론트엔드  >  jquery 선택기에 동시에 두 개의 클래스가 있다는 것은 무엇을 의미하며 클래스를 얻는 방법에 대한 소개

jquery 선택기에 동시에 두 개의 클래스가 있다는 것은 무엇을 의미하며 클래스를 얻는 방법에 대한 소개

伊谢尔伦
伊谢尔伦원래의
2017-06-17 15:20:565857검색

在CSS3选择器标淮定义的选择器语法中,jQuery支持相当完整的一套子集,同时还添加了一些非标准但很有用的伪类。注意:本节讲述的是 jQuery选择器。其中有不少选择器(但不是全部)可以在CSS样式表中使用。选择器语法有三层结构。你肯定已经见过选择器中最简单的形式。”#te st”选取id属性为”test”的元素。”blockquote”选取文档中的所有b8a712a75cab9a5aded02f74998372b4元素,而”div.note” 则选取所有class属性为”note”的b8a712a75cab9a5aded02f74998372b4元素。简单选择器可以组合成“组合选择器”,比如 “div.note>p”和“blockquote i”,只要用组合字符做分隔符就行。简单选择器和组合选择器还可以分组成逗号分隔的列表。这种选择器组是传递给$()函数最常见的形式。

1、简单选择器

简单选择器的开头部分(显式或隐式地)是标签类型声明。例如,如果只对64e5601d0a941f4972a2954192bdae18元素感兴趣,简单选择器可以用“P”开头。如果选取的元素和标签名无关,则可以使用通配符“*”号来代替。如果选择器没有以标签名或通配符开头,则隐式含有一个通配符。

标签名或通配符指定了备选文档元素的一个初始集。在简单选择器中,标签类型声明之后的部分由零个或多个过滤器组成。过滤器从左到右应用,和书写顺序一致,其中每一个都会缩小选中元素集。

2、组合选择器

使用特殊操作符或“组合符”可以将简单选择器组合起来,表达文档树中元素之间的关系。下表列举了jQuery支持的组合选择器。这些组合选择器与CSS3支持的组合选择器是一样的。

3、选择器组

传递给$()函数(或在样式表中使用)的选择器就是选择器组,这是一个逗号分隔的列表,由一个或多个简单选择器或组合选择器构成。选择器组匹配的元 素只要匹配该选择器组中的任何一个选择器就行。对我们来说,一个简单选择器也可以认为是一个选择器组。

一. jquery选择器中两个class是什么意思?

$(".class1 .class2") 选择class1元素下class2的元素(中间有空格)
$(".class1.class2") 选择同时含有class1和class2的元素(中间没有空格)
$(".class1,.class2") 选择class1或者class2的元素(中间有逗号)

jQuery的选择器和css选择器基本一样,例如:
css选择多个class为:.class1.class2
jQuery选择多个class为:$(".class1.class2")

二. jquery 选择器 怎样获取class='aaa'的DIV元素

jQuery的元素选择器可以根据class选择元素。例如,获取class='aaa'的DIV元素的代码为:$("div.aaa") 。下面提供一个具体的示例,HTML结构如下:
684f478fdf202c080848cc92dad827c6697c02c2b6072558fa0865f5b7c7517816b28748ea4df4d9c2150843fecfba6816b28748ea4df4d9c2150843fecfba68
83b70942a5b0e2a38e14b5d382710748697c02c2b6072558fa0865f5b7c7517816b28748ea4df4d9c2150843fecfba6816b28748ea4df4d9c2150843fecfba68
ec59258268c71b4f2ac658cc54d70b8b697c02c2b6072558fa0865f5b7c7517816b28748ea4df4d9c2150843fecfba6816b28748ea4df4d9c2150843fecfba68
1 ID가 b인 div 아래에서 aaa 클래스 요소를 가져옵니다.
$("div.aaa")는 b 요소 아래의 aaa 클래스로 제한되는 경우 다음과 함께 사용할 수 있습니다. descendant selector, 코드는 다음과 같습니다: $("div#b div.aaa") .
2 ID가 a 또는 c인 div 아래에서 aaa 클래스 요소를 가져옵니다
다양한 유형의 여러 개체를 가져와야 하는 경우 쉼표(,)를 사용하여 구분할 수 있으므로 해당 코드는 $("#a .aaa, #c .aaa") .

3입니다. jQuery

document.getElementsByClassName(className);

getElementsByClassName의 클래스 선택기 제한 사항이 사용됩니다. 여기에서는 IE의 하위 버전은 당연히 전혀 인식하지 못합니다. 그런데 생각해 보니 이상했습니다. 이 스크립트는 분명히 jQuery를 기반으로 합니다. 이 API를 사용하는 대신 $(".className")을 사용하는 것은 어떨까요? 그래서 변경해 보려고 $("." + className).get() 을 사용하여 DOM 요소를 얻어서 아래 스크립트에 전달했는데, 결과적으로 작동하지 않아서 갑자기 흥미가 생겼습니다.

디버깅 후 얻은 className이 data[XXX][yyy] 형식임을 확인했습니다. 클래스의 대괄호 []는 기본 querySelecotr를 사용하여 찾을 수 없는 것이 사실입니다. 하지만 getElementsByClassName은 찾을 수 있습니다. 놀랍습니다...

감탄 후에도 문제는 상대방이 IE8을 사용하지 않을 가능성이 높으므로 더 좋습니다. 모퉁이를 돌면

$("class*='" + className + "'")

이 방법을 사용할 수 있지만 효율성은 한 단계 낮아야 하지만 여전히 사용할 수 있습니다.

엄밀히 말하면 이것은 jQuery의 한계가 아닙니다. jQuery의 성능은 완전히 예상됩니다. getElementsByClassName의 성능에는 추가적인 놀라움이 있습니다~

위 내용은 jquery 선택기에 동시에 두 개의 클래스가 있다는 것은 무엇을 의미하며 클래스를 얻는 방법에 대한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.