Я разбираю некоторые div с URL-адресом в качестве идентификатора, и в случае, если тот же url/ID существует, я хочу обойти его. Поэтому на каждом добавлении я просматриваю 100-е из divs, чтобы найти такое же значение атрибута, что и все те div.Самый быстрый способ найти элемент с таким же значением атрибута
Пример:
HTML:
<div data-id="http://stackoverflow.com"></div>
<div data-id="http://engadget.com"></div>
<div data-id="http://9gag.com"></div>
<div data-id="http://reddit.com"></div>
<div data-id="http://facebook.com"></div>
<div data-id="http://stackoverflow.com"></div>
<div data-id="http://twitter.com"></div>
<div data-id="http://mashable.com"></div>
Так что если StackOverflow существует, байпас:
$('div[data-id="http://www.stackoverflow"]').length
Что бы самый быстрый способ сделать с чистым JS?
EDIT:
Таким образом, после давая попробовать его более сложный, что я подумал:
Поскольку я должен добавить первое содержимое, а затем найти, если данные-идентификатор с определенным атрибутом значения дважды существует , Я изо всех сил пытаюсь достичь самого быстрого пути.
Вот мой HTML:
<div class="ele" data-id="http://stackoverflow.com">http://stackoverflow.com</div>
<div class="ele" data-id="http://engadget.com">http://engadget.com</div>
<div class="ele" data-id="http://9gag.com">http://9gag.com</div>
<div class="ele" data-id="http://reddit.com">http://reddit.com</div>
<div class="ele" data-id="http://facebook.com">http://facebook.com</div>
<div class="ele" data-id="http://stackoverflow.com">http://stackoverflow.com</div>
<div class="ele" data-id="http://twitter.com">http://twitter.com</div>
<div class="ele" data-id="http://mashable.com">http://mashable.com</div>
<div class="ele" data-id="http://bbc.com">http://bbc.com</div>
<div class="ele" data-id="http://twitter.ca">http://twitter.ca</div>
<div class="ele" data-id="http://google.com">http://google.com</div>
<div class="ele" data-id="http://apple.com">http://apple.com</div>
<div class="ele" data-id="http://cnn.com">http://cnn.com</div>
<div class="ele" data-id="http://imgur.com">http://imgur.com</div>
<div class="ele" data-id="http://9gag.com">http://9gag.com</div>
и вот мои JS:
var a = document.getElementsByClassName("ele")
for (i=0;i<a.length;i++) {
var b = a[i].getAttribute("data-id");
if (document.querySelectorAll('div[data-id="' + b +'"]').length > 1){
console.log(a[i])
}
}
Этот выход будет:
<div class="ele" data-id="http://stackoverflow.com">http://stackoverflow.com</div>
<div class="ele" data-id="http://9gag.com">http://9gag.com</div>
<div class="ele" data-id="http://stackoverflow.com">http://stackoverflow.com</div>
<div class="ele" data-id="http://stackoverflow.com">http://stackoverflow.com</div>
<div class="ele" data-id="http://9gag.com">http://9gag.com</div>
из которых как 9gag.com и StackOverflow .com существует больше, чем t Вайс.
Как я могу оставить только 1 из них и удалить остальные? & Это самый быстрый способ достижения этого?
Путь ответить на ваш вопрос, чтобы проверить производительность для себя. StackOverflow действительно не может точно ответить на этот вопрос для вас. Вам нужно взять фактическую страницу (ы), где вы выполняете операцию, и выполнить некоторые тесты производительности в браузерах, которые вас волнуют. Нет никакой гарантии, что один тест будет точно представлять все ситуации. –
Является ли окончательный заказ важным? – Flimzy
@Flimzy абсолютно я боюсь – jQuerybeast