Разница между этими двумя селекторами?

На веб-странице имеется несколько элементов div, некоторые из которых имеют класс "class1".

Вопрос. Будут ли оба нижеперечисленных элемента предоставить нам все элементы div, имеющие класс класса 1?

$("div .class1")
$("div.class1")
5 ответов

Эти два селектора выполняют разные вещи.

Этот селектор:

$("div .class1")

будет возвращать любой элемент (независимо от типа элемента), который имеет класс класса class1 и является потомком (непосредственным или иным образом) div (независимо от этого класса div, если таковой имеется).

Этот селектор:

$("div.class1")

будет возвращать любой div, который имеет класс class1.


Первый выбирает элемент, который имеет класс class1, являющийся потомком div.

<div> <p>text</p> <-- selected
</div>

Второй будет выбирать div который имеет класс class1.

<div> <-- selected <p>text</p>
</div>

Будут ли обе подсекаторы давать нам все элементы div, имеющие класс класса 1?

Нет, только второй, $("div.class1"), будет. В jQuery и CSS пространство перед классом означает, что вы ищете элемент-потомк с этим классом.


Разница между выбранными вами селекторами является иерархией элементов.

Допустим, у вас есть такой код:

<div> This is a div with class name class1
</div>
<div> This is a div with no class name</div> <span>This is a span with class name class1</span>
<div> This is a div with class name class1
</div>
<div> This is a div with no class name <p>This is a paragraph with class name class1</p>
</div>
<div> This is a div with class name class1
</div>
<div> This is a div with class name class1 <div> This is a div with class name class1 </div> </div>

Селектор $("div.class1") вернет вам все элементы внутри элемента

который имеет класс name class1. В нашем примере это будет <span>...</span>, <p>...</p> а последний div <div>...</div>

тогда как селектор $ ("div.class1") вернет вам все элементы

которых есть класс name class1. В нашем примере это все экземпляры
.

здесь скрипка, которая поможет вам понять больше: http://jsfiddle.net/fatgamer85/m99onozo/1/

надеюсь это поможет.


Nop.

Первый даст вам элементы в div которые имеют класс class1 а второй даст вам div с классом class1.


Первый селектор дает вам все элементы .class1 которые являются потомками любого элемента

.

Второй даст вам все элементы .class1, которые на самом деле

сами.

licensed under cc by-sa 3.0 with attribution.