Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 14.11.2015, 17:45
Интересующийся
Отправить личное сообщение для Anrew Посмотреть профиль Найти все сообщения от Anrew
 
Регистрация: 24.05.2015
Сообщений: 20

Наимудрейший рони,
подскажите, пожалуйста - перелопатил все открывашки/закрывашки, но не получается реализовать это:

Необходимо удалить(закрыть) блок на кнопку "удалить" и удалить все блоки, нажав на кнопку "удалить все"
Блоков будет "n" число:

<style type="text/css">
  .div {
    background: yellow;
    width: 100px;
    height: 100px;
    float: left;
    margin-right: 10px;}
</style>


<div class="div">
  <button type="button" class="delite" onclick="viewed.remove('<?php echo $var; ?>');">удалить</button> 
1</div>
<div class="div">
<button type="button" class="delite" onclick="viewed.remove('<?php echo $var; ?>');">удалить</button>
2</div>
<div class="div">
<button type="button" class="delite" onclick="viewed.remove('<?php echo $var; ?>');">удалить</button>
3</div>
<button type="button" class="alldelite">удалить все</button>



Точнее получается, но как всегда через ж)) с помощью i++ блокам применяю уникальный id и ... вообщем через ж...)

Подскажите, пожалуйста - как можно проще все это реализовать?
Ответить с цитированием
  #12 (permalink)  
Старый 14.11.2015, 18:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Anrew,
удалить? или скрыть?
Ответить с цитированием
  #13 (permalink)  
Старый 14.11.2015, 18:24
Интересующийся
Отправить личное сообщение для Anrew Посмотреть профиль Найти все сообщения от Anrew
 
Регистрация: 24.05.2015
Сообщений: 20

Лучше удалить)) Но можно и в display:none
Ответить с цитированием
  #14 (permalink)  
Старый 14.11.2015, 18:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Anrew,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .div {
    background: yellow;
    width: 100px;
    height: 100px;
    float: left;
    margin-right: 10px;}
</style>
 <script>
 window.addEventListener('DOMContentLoaded', function() {
   var delites = document.querySelectorAll('.delite'),
   alldelite = document.querySelector('.alldelite');
   [].forEach.call(delites, function(item) {
           item.addEventListener('click', function() {
               var body = document.querySelector('body');
               body.removeChild(this.parentNode)
           });
       });

   alldelite.addEventListener('click', function () {
      [].forEach.call( document.querySelectorAll('.delite'), function(button) {
             button.click()
      });
   });

     });
</script>
</head>

<body>



<div class="div">
  <button type="button" class="delite" >удалить</button>
1</div>
<div class="div">
<button type="button" class="delite" >удалить</button>
2</div>
<div class="div">
<button type="button" class="delite" >удалить</button>
3</div>
<button type="button" class="alldelite">удалить все</button>

</body>

</html>
Ответить с цитированием
  #15 (permalink)  
Старый 14.11.2015, 18:45
Интересующийся
Отправить личное сообщение для Anrew Посмотреть профиль Найти все сообщения от Anrew
 
Регистрация: 24.05.2015
Сообщений: 20

Огромное спасибо)) Очень помогли.
Ответить с цитированием
  #16 (permalink)  
Старый 14.11.2015, 20:48
Интересующийся
Отправить личное сообщение для Anrew Посмотреть профиль Найти все сообщения от Anrew
 
Регистрация: 24.05.2015
Сообщений: 20

Рано радовался) На свою голову упростил верстку, а оказалось зря. Если все эти блоки будут обернуты в дивы, то скрипт выдает ошибку "Uncaught NotFoundError: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node."

Вот, например, так уже не работает:

<div class="top">
<div class="div">
  <button type="button" class="delite" >удалить</button>
1</div>
<div class="div">
<button type="button" class="delite" >удалить</button>
2</div>
<div class="div">
<button type="button" class="delite" >удалить</button>
3</div>
<button type="button" class="alldelite">удалить все</button>
</div>


А таких оберток будет много
Рони, подскажите, пожалуйста - как в таком случае код должен выглядеть?
Ответить с цитированием
  #17 (permalink)  
Старый 14.11.2015, 21:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Anrew,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .div {
    background: yellow;
    width: 100px;
    height: 100px;
    float: left;
    margin-right: 10px;
    }
  .top{
     height: 150px;
    border: 2px solid #191970;
    padding: 10px;
    margin: 50px;
  }
</style>
 <script>
window.addEventListener("DOMContentLoaded", function() {
    var c = document.querySelectorAll(".delite"),
        d = document.querySelectorAll(".alldelite");
    [].forEach.call(c, function(a) {
        a.addEventListener("click", function() {
            var b = a.parentNode;
            b.parentNode.removeChild(b)
        })
    });
    [].forEach.call(d, function(a) {
               a.addEventListener("click", function() {
               var b = a.parentNode.querySelectorAll(".delite");
            [].forEach.call(b, function(a) {
                a.click()
            })
        })
    })
});
</script>
</head>

<body>



<div class="top">
<div class="div">
  <button type="button" class="delite" >удалить</button>
1</div>
<div class="div">
<button type="button" class="delite" >удалить</button>
2</div>
<div class="div">
<button type="button" class="delite" >удалить</button>
3</div>
<button type="button" class="alldelite">удалить все</button>
</div>
<div class="top">
<div class="div">
  <button type="button" class="delite" >удалить</button>
1</div>
<div class="div">
<button type="button" class="delite" >удалить</button>
2</div>
<div class="div">
<button type="button" class="delite" >удалить</button>
3</div>
<button type="button" class="alldelite">удалить все</button>
</div>
<div class="top">
<div class="div">
  <button type="button" class="delite" >удалить</button>
1</div>
<div class="div">
<button type="button" class="delite" >удалить</button>
2</div>
<div class="div">
<button type="button" class="delite" >удалить</button>
3</div>
<button type="button" class="alldelite">удалить все</button>
</div>
<div class="top">
<div class="div">
  <button type="button" class="delite" >удалить</button>
1</div>
<div class="div">
<button type="button" class="delite" >удалить</button>
2</div>
<div class="div">
<button type="button" class="delite" >удалить</button>
3</div>
<button type="button" class="alldelite">удалить все</button>
</div>

</body>

</html>

Последний раз редактировалось рони, 14.11.2015 в 22:13.
Ответить с цитированием
  #18 (permalink)  
Старый 14.11.2015, 22:04
Интересующийся
Отправить личное сообщение для Anrew Посмотреть профиль Найти все сообщения от Anrew
 
Регистрация: 24.05.2015
Сообщений: 20

Это то что нужно. Огромное человеческое СПАСИБО))
Ответить с цитированием
  #19 (permalink)  
Старый 14.11.2015, 22:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Anrew,
скрпируйте скрипт по новой, немного уточнил. строка 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Упростить скрипт, помогите плз. volodyal Общие вопросы Javascript 1 05.07.2015 12:36
Помогите поправить код JavaScript на сайте karvor AJAX и COMET 1 08.02.2015 13:13
Помогите упростить функцию bratkovsky Общие вопросы Javascript 7 28.07.2012 18:14
Помогите код оптимизировать. Suharik Events/DOM/Window 2 27.05.2010 11:59
Прелоэдер. Помогите разобрать код. bayah Общие вопросы Javascript 1 05.05.2010 20:32