Как решить дубликаты объектов в динамической загрузке страницы с помощью jQuery?
Я хочу решать дубликаты объектов в динамической загрузке контента. Пожалуйста, посмотрите на следующий исходный код для облегчения понимания.
HTML-код базовой страницы с 1 динамической загрузкой содержимого
<body>
<div id="general-div"></div>>
<div id="div1"></div>
<div id="placeholder1">
Dynamic Content will be placed inside this.
<div class="inner-div"></div>
<div class="div1"></div>
</div>
</body>
Для сценария в заголовке этой страницы очень легко выбрать объект «общий-div», как показано в следующем коде.
$('#general-div')
Это довольно просто для выбора объекта "inner-div" внутри placeholder1. Поэтому я могу выбрать с помощью приведенного ниже кода.
$('.inner-div')
Приведенный выше код может работать отлично. Однако я не могу использовать приведенный выше код, если в одном документе более одного дублированного объекта, например, в следующем HTML. Приведенный выше код вернет 2 объекта, которые не соответствуют тому, что я хочу.
HTML-код базовой страницы - после загрузки другого динамического содержимого загрузки
<body>
<div id="general-div"></div>>
<div id="div1"></div>
<div id="placeholder1">
Dynamic Content will be placed inside this.
<div class="inner-div"></div>
<div class="div1"></div>
</div>
<div id="placeholder2">
Dynamic Content will be placed inside this.
<div class="inner-div"></div>
<div class="div1"></div>
</div>
</body>
Возможное решение 1
Я должен создать указанный сценарий foreach объекта jQuery в динамической загрузке содержимого, как показано в следующем коде.
// Deep copy for jQuery object.
var specfiedjQueryObj = $.extend(true, {}, jQuery);
// modify find function in jQuery object.
specfiedjQueryObj.fn.find = function(selector)
{
// by adding placeholder selector before eval result.
return new specfiedjQueryObj.fn.old_find('#placeholder1 ' + selector);
};
// So, I can select any object in dynamic loading content.
(function($)
{
// This result must be 1 object.
$('.div1');
})(temp);
Хотя это решение должно работать отлично. Но я обнаружил, что jQuery - очень сложный объект. Я нашел много ошибок, когда я пытаюсь использовать его.
У вас есть идеи для решения этой проблемы?
PS.PlaceHolder Id не является фиксированным идентификатором. Таким образом, это невозможно исправить в правиле селектора. Более того, я не знаю точно количество элементов и их положение (первое, последнее или среднее) в документе. Из-за динамической загрузки контент будет отображаться на многих страницах.