#jquery #reference
#jquery #ссылка
Вопрос:
Я пытаюсь выяснить, как использовать jquery для ссылки на объект верхнего уровня в html (body) из любого дочернего элемента внутри html.
Ответ №1:
Я не понимаю, почему $(«body») не будет работать.
см. http://api.jquery.com/element-selector /
Это можно использовать из любого места, и то, в каком дочернем элементе вы находитесь, не имеет значения.
Дополнительные примечания, основанные на комментариях:
Это действительно зависит от каждого случая. Если потребность относительна (на странице более одной таблицы), то использование parent()
и closest()
часто будет лучшим способом. На более простых страницах вы можете искать элементы непосредственно по идентификатору.
Два примера:
Страница с двумя списками, где вы хотите перемещать элементы между одним списком и другим. Поскольку эта функциональность определяется как страница, имеющая только два списка, имеет смысл использовать прямой метод.
Страница с динамическим списком пользователей и динамическим добавлением элементов в пользовательский контент (например, динамический чат). В этом случае вы хотите использовать relative, поскольку в области каждого пользователя будут одинаковые элементы, и вы хотите изменить эту область относительно области пользователя.
Комментарии:
1. Да, я пытаюсь обрабатывать события, запускаемые кнопками в каждой строке таблицы. Если я хочу, чтобы jquery ссылался на элемент вне таблицы / строки, кажется, гораздо проще искать элемент с верхнего уровня, чем пытаться выйти из таблицы, а затем искать этот конкретный элемент.
Ответ №2:
Вы также можете попробовать
element.closest('body');
Хотя это, конечно, непрактично, вам следует один раз обратиться к body и кэшировать результат в переменной, например:
body = $('body');
а затем просто обратитесь к body
.
Комментарии:
1. Зачем это делать? HTML может иметь только один
<BODY>
, это будет работать намного медленнее, чем$("BODY")
.2. просто хотел показать, что есть
closest
, обновил ответ, сказав, что это непрактично.
Ответ №3:
Вы всегда можете использовать $.prev()
и $.next()
Это $.parent()
вернет родительский контейнер
Или с помощью селектора:
$('body')
Комментарии:
1. Никогда не было бы веской причины для использования
#bodyID
, поскольку HTML может иметь только 1 элемент тела, и он будет работать медленнее.2. Вы правы.. но я помню ошибку в ie6, которая требовала добавления идентификатора в тело .. в любом случае, я исправил свой ответ.