Это плохой код.
id = $(this).attr("id");
if ($("#"+id+" img").is(":hidden"))
Это означает, что получить id
элемента, которая была нажата. Представим себе, что id
был строкой foobar
. Затем мы создаем строку, которая выглядит как #foobar img
. То есть строки объединяются (это называется конкатенацией). Они используются для создания селектора jQuery, который находит img
элементов в пределах #foobar
.
Это плохой способ сделать это. Простой способ заключается в использовании find
метод JQuery в:
var img = $(this).find('img');
if (img.is(':hidden')) {
img.fadeIn('slow');
// etc
}
Стоит также отметить, что $(this).attr('id')
является всегда плохая идея. Разумеется, вам действительно не нужно значение id
, чтобы делать то, что вы делаете, но это полезно для справок в будущем. this
- ссылка на элемент, который был нажат. Вы можете получить доступ к свойству id
элемента, выполнив this.id
. Он вернется точно так же, как и $(this).attr('id')
, но более эффективно.
'img' - это тег изображения, он ищет потомков' img' элемента, который вы нажали. Хотя '$ (this) .find ('img'). Is (': hidden')' будет иметь одинаковые результаты – rorypicko
Не обязательно, 'find ('img')' будет эквивалентным, 'children()' ограничен только для поиска непосредственных дочерних элементов элемента. –
Ах, да, спасибо. комментарий обновлен. – rorypicko