Предположим, что у вас есть представление Django, который имеет две функции:Сравнение двух больших наборов атрибутов
Первая функция производит рендеринг некоторого XML с помощью таблицы стилей XSLT и производит DIV с 1000 подэлементов, как это:
<div id="myText">
<p id="p1"><a class="note-p1" href="#" style="display:none" target="bot">✽</a></strong>Lorem ipsum</p>
<p id="p2"><a class="note-p2" href="#" style="display:none" target="bot">✽</a></strong>Foo bar</p>
<p id="p3"><a class="note-p3" href="#" style="display:none" target="bot">✽</a></strong>Chocolate peanut butter</p>
(etc for 1000 lines)
<p id="p1000"><a class="note-p1000" href="#" style="display:none" target="bot">✽</a></strong>Go Yankees!</p>
</div>
Вторая функция предоставляет другой XML-документ с использованием другой таблицы стилей для создания DIV так:
<div id="myNotes">
<p id="n1"><cite class="note-p1"><sup>1</sup><span>Trololo</span></cite></p>
<p id="n2"><cite class="note-p1"><sup>2</sup><span>Trololo</span></cite></p>
<p id="n3"><cite class="note-p2"><sup>3</sup><span>lololo</span></cite></p>
(etc for n lines)
<p id="n"><cite class="note-p885"><sup>n</sup><span>lololo</span></cite></p>
</div>
Мне нужно, чтобы увидеть, какие элементы в #myText есть классы которые соответствуют элементам в #myNotes и отображают их. Я могу сделать это с помощью следующего JQuery:
$('#myText').find('a').each(function() {
var $anchor = $(this);
$('#myNotes').find('cite').each(function() {
if($(this).attr('class') == $anchor.attr('class')) {
$anchor.show();
});
});
Однако это невероятно медленным и неэффективным для большого количества сравнений.
Что является самым быстрым/эффективным способом для этого - существует ли метод jQuery/js, который является разумным для большого количества элементов? Или мне нужно переустановить код Django, чтобы выполнить эту работу, прежде чем передавать ее в шаблон?
Чувак ... Это просто многословный рефакторинг моего ответа, что я дал 13 часов назад, но с добавленным ', если()' оператором. – user113716