Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno delete <tr> cez javascript

Dobry den

Zaujimalo by ma,ako sa da vymazat riadok tabulky pomocou javascriptu a to pomocou idcka:

<table id='id_table'>
<tr id='1'>
<td>...</td>
<tr id='2'>
<td>...</td>

...
</table>

viem ze existuje funckia table.deleteRow(i); kde var table = document.getElementById(id_table); a 'i' je riadok.Ale ja chcem mazat riadky na zaklade idciek.Ako sa to robi?

Dakujem

Předmět Autor Datum
Hele Já to radši řeším pouze skrytím daného prvku (v tomto případě řádku) pomocí stylů - vlastnost…
Kráťa 30.10.2011 08:27
Kráťa
to je sice fajn,ale ja tie data z kazdeho riadku potom ukladam do tabulky SQL a nechcem to filtrovat…
matasko24 30.10.2011 08:30
matasko24
Nevím, co a jak chceš dělat. Nejdříve chceš mazat podle ID, pak to chceš ukládat, pak zase mazat...…
Kráťa 30.10.2011 08:43
Kráťa
V tej tabulke si dynamicky vytvaram riadky pomocou javascriptu a rad by som ich aj mazal.A chces mi…
matasko24 30.10.2011 08:51
matasko24
Že je pomocí javascriptu vytváříš (že už nejsou vytvořeny), píšeš až teď. Do hlavy ani na monitor ti…
Kráťa 30.10.2011 09:10
Kráťa
http://tech.chitgoks.com/2008/05/20/javascript-rem ove-row-from-table/ http://www.daniweb.com/web-de…
MaSo 30.10.2011 09:07
MaSo
Proč zakládáš další dotaz? http://pc.poradna.net/q/view/720133-tabulka-s-java scriptom Google: java…
host 30.10.2011 09:08
host
dakujem vsetkym za pomoc,uz som to vyriesil.Este by ma zaujimalo,ako predam javascriptu nejake pole…
matasko24 30.10.2011 09:39
matasko24
Pole v PHP zakóduješ pomocou json_encode. Do JavaScriptu ho dostaneš buď pri generovaní stránky aleb…
los 30.10.2011 09:54
los
To je skvělý, že jsi to vyřešil. Hlavně se za žádnou cenu nepoděl o řešení. Předání pole z PHP do j…
host 30.10.2011 09:55
host
cely ten javascript vyzera takto: var id=0; function addRow(tab) { //vytvory novy riadok var table…
matasko24 30.10.2011 10:06
matasko24
V tomto prípade vôbec nepotrebuješ používať identifikátory. Hodnotu element1.name môžeš určiť podľa…
los 30.10.2011 10:50
los
Dakujem :-) poslední
matasko24 01.11.2011 13:28
matasko24

Hele

Já to radši řeším pouze skrytím daného prvku (v tomto případě řádku) pomocí stylů - vlastnost display:

<table>
<tr id="id-1" onclick="skryt(this)"><td> Jedna </td></tr>
<tr id="id-2" onclick="skryt(this)"><td> Dva </td></tr>
<tr id="id-3" onclick="skryt(this)"><td> Tri </td></tr>
</table>
<script>
function skryt(row) {
row.style.display='none';
}
</script>

Skrytý řádek pak mohu zase dle potřeby zobrazit:

Zobrazit radky
<a href="#" onclick="zobrazit(1); return false;"> 1 </a>
<a href="#" onclick="zobrazit(2); return false;"> 2 </a>
<a href="#" onclick="zobrazit(3); return false;"> 3 </a>
<script>
function zobrazit(id) {
document.getElementById('id-' + id).style.display='';
}
</script>
http://diskuse.jakpsatweb.cz/?action=vthread&forum =8&topic=106656

Nevím, co a jak chceš dělat. Nejdříve chceš mazat podle ID, pak to chceš ukládat, pak zase mazat... Našel jsem ti to skrývání. Javascriptem nic nesmažeš, ale pouze skryješ (nebo nezobrazíš). Je to klientský script. Na smazání "natvrdo" bys musel použít nějaký serverový script, např. PHP.

cely ten javascript vyzera takto:

var id=0;
function addRow(tab) {                                      //vytvory novy riadok

            var table = document.getElementById(tab);
 
            var rowCount = table.rows.length;
            var row = table.insertRow(rowCount);
            var x=row.id='r'+id;                  //id riadku
            id=id+1;            
 
            var cell1 = row.insertCell(0);
            var element1 = document.createElement('input');
            element1.type = 'text';
            element1.name = id;
            element1.size = '4';
            element1.maxLength = 3;
            cell1.appendChild(element1);
 
            var cell2 = row.insertCell(1);
            cell2.innerHTML = rowCount;
            
            var cell3 = row.insertCell(2);
            var element2 = document.createElement('input');
            element2.type = 'text';
            element2.size = '4';
            cell3.appendChild(element2);
            
            var cell4 = row.insertCell(3);
            var element3 = document.createElement('input');
            element3.type = 'text';
            element3.size = '4';
            cell4.appendChild(element3);
            
            var cell5 = row.insertCell(4);
            var element4 = document.createElement('input');
            element4.type = 'text';
            element4.size = '5';
            cell5.appendChild(element4);
 
            var cell6 = row.insertCell(5);            
            cell6.innerHTML = 'aaa';
            
            var cell7 = row.insertCell(6);            
            cell7.innerHTML = 'aaa';
            
            var cell8 = row.insertCell(7);
            var element5 = document.createElement('input');
            element5.type = 'text';
            element5.size = '4';
            cell8.appendChild(element5);
            
            var cell9 = row.insertCell(8);            
            cell9.innerHTML = 'aaa';
            
            var cell10 = row.insertCell(9);            
            cell10.innerHTML = 'aaa';
            
            var cell11 = row.insertCell(10);
            var element6 = document.createElement('input');
            element6.type = 'text';
            element6.size = '7';
            cell11.appendChild(element6);
            
            var cell12 = row.insertCell(11);            
            cell12.style.border='none';
            var element7 = document.createElement('input');
            element7.type='button';
            element7.id= id;
            //element7.class = 'add';            
            var on='deleteRow("'+x+'")';             
            cell12.appendChild(element7);
            document.getElementById(element7.id).onclick= new Function(on);                                  
        }
        function deleteRow(id_row) {                          //zmaze riadok
            var element = document.getElementById(id_row);
            element.parentNode.removeChild(element); 
                                  
        }

V tomto prípade vôbec nepotrebuješ používať identifikátory. Hodnotu element1.name môžeš určiť podľa hodnoty rowCount. Hodnotu element7.id nepotrebuješ nastavovať a obsluhu onclick môžeš priradiť priamo: element7.onclick = function() { row.parentNode.removeChild(row); }.

Elementy input sú predvolene typu text, takže aj to nastavenie je zbytočné.

Do size môžeš priraďovať rovno číslo, nie reťazec.

Ak chceš nastavovať text bunky, tak by som vytváral textové uzly: cell.appendChild(document.createTextNode(text)). Ak chceš naozaj nastavovať innerHTML, tak nič.

Zpět do poradny Odpovědět na původní otázku Nahoru