tomaac Posted September 25, 2007 Report Posted September 25, 2007 Izveidoju tabulu: var table = document.createElement('table'); Salieku tajā tabulā rindas un kolonnas. Tad kolonnām ar innerHTML salieku to info iekšā, apmēram, ret = '<input...>'; cell.innerHTML = ret; utt. Tad izveidojas tāda struktūra: <table> <tr> <td> <input id = "id_1">... </td> </tr> <tr> <td> <input id = "id_2">... </td> </tr> utt.... Un tagad man ir šis te mainīgais table un man vajaga piekļūt pie id_1 vai id_2 un nomainīt viņu stili display, nu, kaut ko tādā garā table.getElementById('id_1').style.display = 'none', bet tā jau rakstīt nevar... Kā šamo panākt?
andrisp Posted September 25, 2007 Report Posted September 25, 2007 Nu tā kā ID dokumentā ir unikāli, tad vari vienkārši document.getElementById('id_1')....
tomaac Posted September 25, 2007 Author Report Posted September 25, 2007 Problēma ir tā, ka pati tabula vēl nav izveidota fiziska... Nu, tas ir tikai mainīgais table. Tas table vēl nav ielikts DOM-ā. Varbūt tad tādas iespējas nav, kā es vēlos... un tad tikai iekš tiem ret = '<input '; cell.innerHTML = ... būs jāliek tas display, bet tas man likās gana neērti, jo to inputu ir daudz un to display stils atkarīgs no vairākiem parametriem. Šo apstrādi vēlējos ielikt velāk.
andrisp Posted September 25, 2007 Report Posted September 25, 2007 Veido input elementu arī ar DOM metodēm neviss ar innerHTML. Tādejādi tu varēsi arī propertijas (style.display) mainīt.
bubu Posted September 25, 2007 Report Posted September 25, 2007 Nevajag lietot innerHTML. Vajag lietot DOM funkcijas: var input1 = document.createElement("input"); tabulas_td_elements.appendChild(input1); input1.id = "id_1"; input1.className = "klase"; input1.type = "button"; ...
tomaac Posted September 25, 2007 Author Report Posted September 25, 2007 Oki... bet vai tad kods nekļūs mazāk pārskatāms? Man reāli tajā tabulā nav tikai <input> tagi, bet visādi div-i, kuros ir citi div-i, un citi input-i.. utt. Kāda ir "labā prakse"? (nekā daudz nezinu... :( )
v3rb0 Posted September 25, 2007 Report Posted September 25, 2007 var arī exotiskam gadījumam innerHTML, bet tad par tbody jāatceras. window.onload=function(){ var table = document.createElement("table"); table.appendChild(document.createElement("tbody")); table.tBodies[0].appendChild(document.createElement("tr")); table.tBodies[0].rows[0].appendChild(document.createElement("td")); table.tBodies[0].rows[0].cells[0].innerHTML = "<u>htmls..<i></u> un ja vajag, pat aplams</i><input type='text' />"; document.body.appendChild(table); }
bubu Posted September 25, 2007 Report Posted September 25, 2007 Var jau izmantot kautkādu palīgbibliotēku, kas nowrapo DOM elementu izveidošanu daudz ērtākā veidā. Bija viena diezgan laba, bet neatceros diemžēl tās nosaukumu. Uz fikso uzgūglēju kautko ļoti līdzīgu: http://flydom.socianet.com/
Recommended Posts