Вход

Просмотр полной версии : Поиск и удаление второго элемента класса


Nezumi.May
20.03.2017, 00:54
Здравствуйте!

Есть задачка: На странице имеются дубли материалов, например:

<section class="ya001"></section>
<section class="ya003"></section>
<section class="ya002"></section>
<section class="ya001"></section>
<section class="ya005"></section>
<section class="ya002"></section>
<section class="ya007"></section>

Есть ли какая-нибудь возможность с помощью скрипта отыскивать вторые элементы данного класса и удалять их? То бишь удалять дубли.

laimas
20.03.2017, 01:00
Есть ли какая-нибудь возможность с помощью скрипта отыскивать вторые элементы данного класса и удалять их?

Есть, но откуда они появляются?

Nezumi.May
20.03.2017, 21:33
Есть, но откуда они появляются?

Поиск такой, что добавляет к результатам по тегу результаты по названию. 3-6 элемента из 40 точно повторяются. Прихожу к выводу, что единственный подходящий вариант каким-нибудь способом удалить лишнее. Пробовала стилями, но что-то не то. А 40 раз проверять страницу на сходство классов совсем не айс. В общем, знаний не хватает что-либо сделать в этой ситуации.

Paguo-86PK
20.03.2017, 21:42
Можнo перед добавлением проверять наличие...

Nezumi.May
20.03.2017, 21:56
Можнo перед добавлением проверять наличие...

Так тут не добавление, просто выводятся дубли в поиски из-за особенности системы. Может быть вы имели ввиду повлиять на вывод информации? Но в таком случае получается, что для 40 элементов придётся делать 40 проверок, а это, пожалуй, будет долго загружаться..

рони
20.03.2017, 22:08
Nezumi.May,
на сервере это надо делать, в любом случае все элементы нужно будет проверить.

рони
20.03.2017, 22:26
Nezumi.May,
<!DOCTYPE html>

<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
</style>
<script>
window.addEventListener('DOMContentLoaded', function() {
var obj = {};
[].forEach.call( document.querySelectorAll('[class^="ya"]'), function(el) {
obj[el.className] ? el.parentNode.removeChild(el): (obj[el.className]=true)
});
});
</script>
</head>

<body>
<section class="ya001">1</section>
<section class="ya003">3</section>
<section class="ya002">2</section>
<section class="ya001">1</section>
<section class="ya005">5</section>
<section class="ya002">2</section>
<section class="ya007">7</section>

</body>
</html>

Nezumi.May
20.03.2017, 23:56
рони,
Как всегда выручаете! Спасибо!

Доступа к серверу нет, увы. А насчёт проверить - этот способ, насколько я понимаю, проверяет элементы на странице один раз? Я-то вообще пробовала находить элементы с помощью тяжеловесного .is() - это было бы ужасно.

laimas
21.03.2017, 03:32
Доступа к серверу нет, увы.

Это как понимать?