Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Поиск и удаление второго элемента класса (https://javascript.ru/forum/misc/68001-poisk-i-udalenie-vtorogo-ehlementa-klassa.html)

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
Есть ли какая-нибудь возможность с помощью скрипта отыскивать вторые элементы данного класса и удалять их?

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

Nezumi.May 20.03.2017 21:33

Цитата:

Сообщение от laimas (Сообщение 447872)
Есть, но откуда они появляются?

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

Paguo-86PK 20.03.2017 21:42

Можнo перед добавлением проверять наличие...

Nezumi.May 20.03.2017 21:56

Цитата:

Сообщение от Paguo-86PK (Сообщение 447952)
Можн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

Цитата:

Сообщение от Nezumi.May
Доступа к серверу нет, увы.

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


Часовой пояс GMT +3, время: 09:09.