Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
shakedown
HV vaatleja

liitunud: 26.01.2005
|
07.05.2008 15:56:24
javascriptiga elemendi kopeerimine ja selle childide id-de muutmine |
|
|
on olemas midagi sellist:
<tr id="row1">
<td>
<element id="rc_1">
<element id="ra_1">
</td>
</tr>
Kpeerin javascriptiga antud elemendi (row1) ning lisan ta tabelisse. Samal ajal muudan ära id, ehk uus rida saab idks: "row2". Sellega saan hakkama. Nüüd aga oleks soov ka elementide id-d vastavalt ära muuta, aga kuidagi ei oska..
Vaja siis, et uus rida näeks välja selline:
<tr id="row2">
<td>
<element id="rc_2">
<element id="ra_2">
</td>
</tr>
_________________ Kuidas müüa 74GB WD Raptorit?
Mina ka ei tea. |
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
Valdars
HV veteran

liitunud: 22.02.2003
|
07.05.2008 16:03:54
|
|
|
Püüad kõigepealt id järgi kinni rea ja seejärel selle seest id järgi elemendid ning siis muudad elementide id ärad ning kõige lõpuks lisad rea tabelisse.
|
|
Kommentaarid: 47 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
44 |
|
tagasi üles |
|
 |
shakedown
HV vaatleja

liitunud: 26.01.2005
|
07.05.2008 16:07:24
|
|
|
ma kujutan ette jah, aga kuidas ma selle rea seest neid lemente id järgi otsin? document.getElementById otsib ju ka neid, mis esimese rea sees on?
Antud hetkel kood:
var a = 0;
function addRow () {
a = a+1;
var ext_row = document.getElementById('row0');
var new_row = ext_row.cloneNode(true);
new_row.setAttribute('id', 'row'+a);
document.getElementById('rowContainer').appendChild(new_row);
} |
_________________ Kuidas müüa 74GB WD Raptorit?
Mina ka ei tea. |
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
Fukiku
Kreisi kasutaja

liitunud: 06.11.2003
|
07.05.2008 17:17:39
|
|
|
kangesti tahaks öelda - osta endal mingi javascripti framework .. näiteks jQuery, seal on näiteks võimalik CSS selectoritega praktiliselt midaiganes selectida.. aga kui sa tahad ise käed tavotiseks teha, siis ei oska aidata, olen ainult framework'idega majandanud..
_________________ Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist. |
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
sharkey
HV vaatleja
liitunud: 26.11.2005
|
08.05.2008 00:57:46
|
|
|
Pole mõnda aega javascripti näppinud, aga midagi sellist ehk:
javascript:
|
new_row.getElementsByTagName('element')[0].setAttribute('id', 'rc_'+a); new_row.getElementsByTagName('element')[1].setAttribute('id', 'rc_'+a);
|
|
|
Kommentaarid: 3 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
3 |
|
tagasi üles |
|
 |
nene
Kreisi kasutaja

liitunud: 20.03.2004
|
15.05.2008 00:33:27
|
|
|
Puhtalt sportlikust huvist kirjutasin lahenduse:
html:
|
</td> </tr> </table> <p><button onclick="addRow();">Lisa rida </button></p>
|
javascript:
|
function incrementIds(element) { // When ID is present, increment it if (element.id) { var found = element.id.match(/([0-9]+)$/); if (found) { var nr = parseInt(found[1], 10); element.id = element.id.replace(/[0-9]+$/, nr + 1); } } // Recursively increment all child elements if (element.hasChildNodes()) { var children = element.childNodes; for (var i = 0; i < children.length; i++) { if (children[i].nodeType == Node.ELEMENT_NODE) { incrementIds(children[i]); } } } } function addRow() { // find last row in table var table = document.getElementsByTagName("table")[0]; var rows = table.getElementsByTagName("tr"); var last_row = rows[rows.length-1]; // clone it var new_row = last_row.cloneNode(true); // increment ID attributes in it incrementIds(new_row); // add as last row table.appendChild(new_row); }
|
Ega palju lihtsamalt seda teha ei saagi.
Iseasi on see, miks sul üldse on tarvis nii palju ID-sid? Võimalik, et tõesti on tarvis, kuid mulle tundub, et saaksid hakkama ka ilma.
|
|
Kommentaarid: 24 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
23 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|