Что происходит в jQuery, когда у вас есть две функции .children ()? - PullRequest
2 голосов
/ 29 июня 2010

Что происходит в jQuery, когда у вас есть две функции .children ()?

 var area = image.canvas.children('.image-pinpoint-edit').children('.image-pinpoint-edit-area');

Это избыточно? ты не можешь просто сделать image.canvas.children('image-pinpoint-edit-area'), чтобы получить внутренних детей?

Ответы [ 3 ]

2 голосов
/ 29 июня 2010
var area = image.canvas.children('.image-pinpoint-edit').children('.image-pinpoint-edit-area');

это не лишнее ...

вы получаете детей детей ...

1 уровень <--- <code>image.canvas
2 уровень<----- <code>.children('.image-pinpoint-edit')
3 уровня <----- <code>.children('.image-pinpoint-edit-area').children('.image-pinpoint-edit-area')

, если вы хотите найти 'image-pinpoint-edit-area'

используйте .find()

image.canvas.find('.image-pinpoint-edit-area');    
// this this will search all its children, grand children, grand grand children, etc...
0 голосов
/ 29 июня 2010

Для человека возможно сделать это , но элементы DOM не могут быть одновременно родителем и прародителем данного элемента.

0 голосов
/ 29 июня 2010

Вы можете использовать image.canvas.find('image-pinpoint-edit-area') - это будет искать более близкий элемент, который соответствует данному селектору (независимо от того, на каком уровне он существует), .children ищет только элементы, которые direct потомки данногоселектор.

edit: ваш способ сделать это с помощью .children (). children () тоже подойдет, я не уверен, что быстрее (.children (). children () или .find ()) но ваш код должен работать!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...