• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Witam mam pytanie jak usunąć wiersz o szukanym numerze w javascript ?

Object Storage Arubacloud
+1 głos
480 wizyt
pytanie zadane 20 lipca 2016 w JavaScript przez Patryk Rafał Bywalec (2,700 p.)

Tak ja w temacie chciał bym  usuwać dowolny wiersz po kliknięciu w usuń
 

Kod w javascript

a tu wywołanie sądzę że zbędne ale wstawie

 

1
komentarz 21 lipca 2016 przez ScriptyChris Mędrzec (190,190 p.)
http://forum.pasja-informatyki.pl/regulamin-forum

Nie wstawiaj kodu jako screen, tylko w odpowiednio do tego przeznaczone bloczki.

2 odpowiedzi

0 głosów
odpowiedź 20 lipca 2016 przez Magicone Nałogowiec (45,100 p.)
Funkcję usun przerób w sposób, aby po skończonym dodaniu zwracała element, który siedzi w zmiennej button. Wówczas wywołując tę funkcję w tworzTabelę bierzesz sobie ten element i podpinasz do niego obsługę zdarzenia click -> wtedy wywołujesz metodę wiersz.remove() z obiektu, który przechodzi ze scope wyżej.
0 głosów
odpowiedź 20 lipca 2016 przez kosaa Stary wyjadacz (14,130 p.)
w tworzTabele() daj dodatkowo

wiersz.setAttribute("id", unikatowe_id);

a pod przycisk usuń podepnij

document.getElementById(unikatowe_id).remove();
komentarz 21 lipca 2016 przez Patryk Rafał Bywalec (2,700 p.)

taki błąd kolego pokazuje

komentarz 21 lipca 2016 przez kosaa Stary wyjadacz (14,130 p.)
id_tabeli.parentNode.removeChild(id_wiersza);

to na pewno działa - wyjęte z projektu

komentarz 21 lipca 2016 przez Patryk Rafał Bywalec (2,700 p.)

taki błąd dostaje

komentarz 21 lipca 2016 przez kosaa Stary wyjadacz (14,130 p.)
jak na dłoni, element, który chcesz usunąć nie jest "dzieckiem" elementu, który podajesz jako rodzica

p.s. screen ledwo widać musiałem przybliżyć, a i tak jest rozmazany
komentarz 21 lipca 2016 przez Patryk Rafał Bywalec (2,700 p.)
a jak stworzyć tego rodzica bo troche nie rozumiem tego ?
komentarz 21 lipca 2016 przez kosaa Stary wyjadacz (14,130 p.)
przez rodzica rozumiem uchwyt do tablicy, coś w stylu

var tablica = document.getElementById(id_tablicy);

wtedy z uchwytu 'tablica' możesz usuwać 'dzieci' tj. wiersze
komentarz 21 lipca 2016 przez Patryk Rafał Bywalec (2,700 p.)
id_tablicy masz na myśli tabelki nie ?
komentarz 21 lipca 2016 przez kosaa Stary wyjadacz (14,130 p.)
tak tak, faktycznie to co napisałem mogło być zinterpretowane dwojako, mam na myśli id tabeli
komentarz 21 lipca 2016 przez Patryk Rafał Bywalec (2,700 p.)

dobra zrobiłem tą tablice przeskakuje po elementach wiersza ale w dalszym ciągu nie wiem jak to usuwanie zrobić ?

komentarz 21 lipca 2016 przez Patryk Rafał Bywalec (2,700 p.)

mam wstawiam kod może komuś się przyda

komentarz 21 lipca 2016 przez Patryk Rafał Bywalec (2,700 p.)

działa ładnie teraz mam pytanie jak zrobić numerowanie od początku np usuwam wiersz i numeruje mi tak

komentarz 21 lipca 2016 przez kosaa Stary wyjadacz (14,130 p.)
dynamiczna numeracja wierszy czyt. za każdą zmianą idzie przepisanie indeksów
komentarz 22 lipca 2016 przez Patryk Rafał Bywalec (2,700 p.)
kurde próbuje tak robić ale dalej źle mi numeruje.
komentarz 22 lipca 2016 przez Patryk Rafał Bywalec (2,700 p.)
dobra mam ale wiesz może jak zamanipulować tablice w javascript żeby numerowała się od 1 a nie od zera ?
komentarz 22 lipca 2016 przez kosaa Stary wyjadacz (14,130 p.)
strzelam, że potrzeba Ci wydrukować numerację

podczas pisania daj indeks+1
komentarz 23 lipca 2016 przez Patryk Rafał Bywalec (2,700 p.)
a wiesz może w jaki sposób sprawdzić nazwe buttona ? aby w zależności od nazwy wykonywać różne czynności ?
komentarz 23 lipca 2016 przez ScriptyChris Mędrzec (190,190 p.)

@Patryk Rafał:

button.name
komentarz 23 lipca 2016 przez Patryk Rafał Bywalec (2,700 p.)
robiąc alerta dostaje undefined co jest grane ?
komentarz 23 lipca 2016 przez Patryk Rafał Bywalec (2,700 p.)
bo mam dwa przyciski i chce rozdzielić akcje dla nich i chce wykonywać instrukcje edycji i usuwania wiersza w tabeli sprawdzając nazwę przycisku
komentarz 23 lipca 2016 przez Patryk Rafał Bywalec (2,700 p.)
function usun()
{

  var nazwaButtona = document.createTextNode('usuń');
  var button = document.createElement('button');
  var komorka3 = document.createElement('td');

  button.appendChild(nazwaButtona);
  komorka3.appendChild(button);
  wiersz.appendChild(komorka3);
  tabelka.appendChild(wiersz);



  for(var i=0; i<tab.length; i++)
  {

      tab[i].onclick = function()
      {
          if(nazwaButtona.name == 'usuń') // chcę sprawdzić nazwę tego przycisku ale to nie działa
          {
            document.getElementById('tabelka').deleteRow(tab[i]);
          }

      }

  }



  var tButton = document.getElementsByTagName('button');

  for(var i=0; i<tButton.length; i++)
  {
    tButton[i].className = 'po';
  }


}

 

komentarz 23 lipca 2016 przez ScriptyChris Mędrzec (190,190 p.)
edycja 23 lipca 2016 przez ScriptyChris

Sprawdź co jest pod tym przyciskiem console.log(nazwaButtona) czy on w ogóle ma atrybut name? Może miałeś na myśli coś innego mówiąc "nazwa"?

Blah...

  var nazwaButtona = document.createTextNode('usuń');

Co to jest? Jeśli chcesz nadać atrybut name, to zapisz button.name = 'usuń';

button.appendChild(nazwaButtona);

Tego nie trzeba. Metoda element.appendChild() dodaje element HTML (jako dziecko) do innego elementu HTML (rodzica). Atrybutów się w ten sposób nie dodaje.

Inna rzecz:

  for(var i=0; i<tab.length; i++)
  {
       tab[i].onclick = function()
      {
          if(nazwaButtona.name == 'usuń') // chcę sprawdzić nazwę tego przycisku ale to nie działa
          {
            document.getElementById('tabelka').deleteRow(tab[i]);
          } 
      } 
  }

Tworząc w ten sposób onclick (w pętli) powodujesz, że w momencie gdy rzeczywiście na niego będziesz klikał, to i będzie miało ostatnią wartość iteratora z pętli for - poczytaj o closures http://benalman.com/news/2010/11/immediately-invoked-function-expression/ (akapit "Saving state with closures").

Dlatego zapisz pętle w ten sposób:

for(var i=0; i<tab.length; i++)
  {
      (function ( index )
      {
         tab[i].onclick = function()
         {
               if(button.name === 'usuń') // od razu poprawiony IF - jeśli o to Ci chodziło
               {
                   document.getElementById('tabelka').deleteRow(tab[ index ]);
               } 
         } 
     } ( i ) );
  }
komentarz 24 lipca 2016 przez Patryk Rafał Bywalec (2,700 p.)
edycja 24 lipca 2016 przez Patryk Rafał

Sprawdziłem kolego i jak kliknę nawet na inny przycisk do przypisuje mi nazwe pierwszego przycisku. Już wyjaśniam o co mi chodzi np, klikam sobie na przycisk usuń i pokazuje dobrze, ale jak klikam przycisk edycja to także przypisuje mi nazwę usuń zamiast edycja.

 

function usun()
{

  var nazwaButtona = document.createTextNode('usuń');
  var button = document.createElement('button');
  var komorka3 = document.createElement('td');
  var edycja = document.createElement('button');
  var nameE = document.createTextNode('edycja');
  var komorka4 = document.createElement('td');


  button.appendChild(nazwaButtona);

  komorka3.appendChild(button);
  wiersz.appendChild(komorka3);
  edycja.appendChild(nameE);
  komorka4.appendChild(edycja);
  wiersz.appendChild(komorka4);
  tabelka.appendChild(wiersz);

  button.name = 'usuń';
  edycja.name = 'edycja';

  var t = document.getElementById('usuń');

  for(var i=0; i<tab.length; i++)
  {

      tab[i].onclick = function()
      {
            numeracja();
            console.log(nazwaButtona);
      }

  }



  var tButton = document.getElementsByTagName('button');

  for(var i=0; i<tButton.length; i++)
  {
    tButton[i].className = 'po';
  }


}

 

Podobne pytania

0 głosów
1 odpowiedź 275 wizyt
0 głosów
1 odpowiedź 1,071 wizyt
pytanie zadane 19 listopada 2017 w JavaScript przez ebone Nowicjusz (140 p.)
0 głosów
2 odpowiedzi 1,246 wizyt
pytanie zadane 7 listopada 2017 w JavaScript przez turtelian Obywatel (1,760 p.)

92,632 zapytań

141,500 odpowiedzi

319,879 komentarzy

62,013 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...