Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Проверка блоков и удаление при не соответсвии (https://javascript.ru/forum/css-html/59690-proverka-blokov-i-udalenie-pri-ne-sootvetsvii.html)

KEX 23.11.2015 00:01

Проверка блоков и удаление при не соответсвии
 
Здравствуйте, недавно я решил написать код на JS, и пока не очень сильно разбираюсь что да как.
Мне нужно написать код, который будет на нужной мне страницы проверять блок и смотреть если в этом блоке нужное для меня слово, если оно там одно и больше ничего, то оставить этот блок и перейти к другому.
Если кроме нужного для меня слова там есть еще одно или несколько других, то удалить этот блок и перейти к другому.
Как такое можно реализовать? Спасибо за помощь!

KEX 23.11.2015 15:19

Прошу помощи.
 
Друзья, помогите пожалуйста, уже третий день мучаюсь читая разные статьи.
Есть сайт с 20-ю div одинакового названия, в каждом из них есть другие подклассы и итог с нужным для меня словом(оно есть в каждом диве).
Мне нужно написать скрипт, который будет проверять каждый див и смотреть, если в этом диве только нужное для меня слово и всё, то оставить этот див и перейти к другому, если в другом будет не только нужное для меня слово, но и еще другие слова, то удалить этот див. И так с каждым.
Помогите пожалуйста!

рони 23.11.2015 15:25

KEX,
html где до и после минимальный

KEX 23.11.2015 15:40

<div class="tradepoll">
<div class="tradecnt">
<form class="left"> (в классе left, надо проверять и 'oitm marketPriced' и 'oitm'
<div class="oitm marketPriced">
<div class="oitm">
<div class="name">
<b>Нужный для меня текст</b> (такой текст есть в каждом 'oitm marketPriced' или 'oitm', но он там есть если вообще должен быть, если он не должен быть, то и соответственно его там не будет.
Мне нужно, что JS проверял каждый из 20-и <div class="tradepoll"> на наличие других кроме нужного для меня текста, если есть, то удалить этот блок, а если только подблок с моим текстом и все, то не удалять, а просто перейти проверять следующий. Спасибо

рони 23.11.2015 15:45

KEX,
не осилил увы, чёткого алгоритма небыло и нет, что и как удалять и

Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

KEX 23.11.2015 15:51

<div class="tradepoll"> // на сайте таких div'ов 'tradepoll' - 20 штук
  <div class="tradecnt">
    <form class="left"> // (в классе left, надо проверять и 'oitm marketPriced' и 'oitm' 
      <div class="oitm marketPriced"> 
      <div class="oitm">
        <div class="name">
          <b>Нужный для меня текст</b>

такой текст есть в каждом 'oitm marketPriced' или 'oitm', но он там есть если вообще должен быть, если он не должен быть, то и соответственно его там не будет.
Мне нужно, что JS проверял каждый из 20-и <div class="tradepoll"> на наличие других слов кроме нужного для меня, если JS находит в этом блоке другие слова, кроме нужных мне, то он удаляет этот блок, а если не находит, то оставляет как есть.

рони 23.11.2015 15:55

KEX,
спасибо за форматирование ... но вы уже трижды повторили одно и тоже, что видимо не может понять, пока никто, кроме вас иначе бы давно подсказали, может как-то по другому сформулировать.
Цитата:

Сообщение от KEX
но он там есть если вообще должен быть

от таких оборотов, мозги плавятся.

KEX 23.11.2015 16:00

Я понимаю, что объясняю я не очень доходчиво. Но я стараюсь это сделать, давайте попробуем еще раз.
1 - Есть сайт, на котором расположены 20 блоков, с так скажем "предметами" в каждом блоке и у каждого предмета есть своё имя.
2 - Мне нужно, чтобы JS проверял каждый из этих блоков. И если он видит, что кроме нужного для меня "предмета" в этом блоке есть другой "предмет", то JS удаляет этот блок со страницы.
3 - Если же в блоке кроме моего "предмета" больше ничего нету, то JS ничего не делает с этим блоком, а идет проверять оставшиеся 19.

рони 23.11.2015 16:01

KEX,
<script>
   var text = ['яблоко'];
</script>
<div>яблоко</div>
<div>груща</div>
<div>помидор</div>

див с яблоко оставить, остальные удалить ... как-то бы так ... что-ли

KEX 23.11.2015 16:06

<script>
var text = ['яблоко'];
</script>
<div>яблоко</div>
<div>яблоко, груша</div>
<div>помидор</div>

А что будет с тем div, где есть и нужный мне предмет и еще один?

KEX 23.11.2015 16:16

Вложений: 2
Прикрепляю картинки для большей понимаймости
Как видите на первом скрине, я имею много дивов tradepoll
В каждом есть моё слово, допустим Slovo, но не во всех tradepoll только моё слово и больше ничего, могут быть и другие слова, допустим Knife(как в картинке).
И если замечены, другие кроме "Slovo", мне надо удалять эти блоки.

рони 23.11.2015 16:23

Цитата:

Сообщение от KEX
А что будет с тем div, где есть и нужный мне предмет и еще один?

так это вам нужно алгоритм разработать, чтоб был чёткий кретерий по какому параметру удалять :)

KEX 23.11.2015 16:26

Как вы поняли, в этом я практически не разбираюсь, поэтому и прошу помощи, хотяб наброски.

рони 23.11.2015 16:35

KEX,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script src="https://code.jquery.com/jquery-1.11.3.min.js">
</script>
  <script>
$(function () {
       var market = $('.marketPriced');
       market.each(function(indx, el){
             $('.name > b',el).text() != 'Slovo' && $(el).remove()
             });
  });
  </script>
</head>

<body>
  <div class="tradepoll">
       <div class="tradecnt">
      <form class="left">
        <div class="oitm marketPriced">
          <div class="oitm">
            <div class="name">
              <b>Slovo</b>
            </div>
          </div>
        </div>
         <div class="oitm marketPriced">
          <div class="oitm">
            <div class="name">
              <b>Knife</b>
            </div>
          </div>
        </div>
         <div class="oitm marketPriced">
          <div class="oitm">
            <div class="name">
              <b>Slovo</b>
            </div>
          </div>
        </div>
      </form>
    </div>
  </div>

  <div class="tradepoll">
       <div class="tradecnt">
      <form class="left">
        <div class="oitm marketPriced">
          <div class="oitm">
            <div class="name">
              <b>Slovo</b>
            </div>
          </div>
        </div>
         <div class="oitm marketPriced">
          <div class="oitm">
            <div class="name">
              <b>Knife</b>
            </div>
          </div>
        </div>
         <div class="oitm marketPriced">
          <div class="oitm">
            <div class="name">
              <b>Slovo</b>
            </div>
          </div>
        </div>
      </form>
    </div>
  </div>
</body>
</html>

KEX 23.11.2015 22:27

Это не совсем то, что мне нужно.
Может можно как нибудь сделать так, JS будет проверять на количество подблоков в div. И если их больше 1-ого, то удалять этот блок?)
Поможете? Спасибо!

рони 23.11.2015 22:39

KEX,
:-?
$(function () {
       $('.marketPriced:nth-child(n+2)').remove();

  });

KEX 23.11.2015 23:25

Уже что-то работает, спасибо огромное!
Но есть недочет, ваша функция работает только с классом div? Как сделать, чтобы чтобы и с form class тоже работала?)

рони 23.11.2015 23:54

KEX,
изучайте css и jquery делайте с дочётами


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