Ориентация на iFrame один раз с помощью jQuery
У меня есть серия кадров (4), которые используются на странице для создания загрузки динамического контента через вызовы Ajax.
В каждом из этих кадров я нацеливаюсь на элементы родительского уровня и обновляю их соответствующим содержанием, например
$("#loadingGrid1",top.document).show();
$("#frameSkills",top.document).hide();
В jQuery есть способ вместо того, чтобы нацеливаться на определенные элементы на родительской странице несколько раз, просто нацелить страницу один раз в переменную, например
var parentPage=$('#frameSkills',top.document);
А затем использовать эту переменную для применения контента, как $(parentPage > #loadingGrid1).hide()
Надеюсь, я объяснил, что мне нужно. По сути, мне приходится вызывать "top.document" в каждом селекторе jQuery, который я делаю, и это кажется пустой тратой энергии.
3 ответа
Объект Jquery может использоваться как контекст, как узел DOM.
var parentPage = $('#frameSkills',top.document);
$("#myselector", parentPage).dostuff();
Или вы можете использовать find
функция:
parentPage.find("#myselector").dostuff();
Что-то вроде этого кажется мне наиболее чистым:
var page = $(top.document); //Define once
page.find("#loadingGrid1").show();
page.find("#frameSkills").hide();
Когда вы звоните $(selector, context)
Вы (во всяком случае, как это все равно) звоните context.find(selector)
внутри в любом случае... может также облегчить чтение / запись / цепочку на ходу.