Jump to content
php.lv forumi

tabulas rindas nomainīšana ar js


Recommended Posts

bubu, tā nav dokumentācija. Tie ir dažādu avotu raksti par tēmu. Dokumentācija - tas ir dokuments ar labu struktūru, kurš pilnībā apraksta nonkrētās valodas sintaksi, objektus, u.t.t. Dokumentācijā nav jārokas divas dienas, lai atrastu kādu sīkumu. Dokumentācija ir php, perl, bet ne javascriptam :)

Nu, jautājums tomēr tika atrisināts, gan drusku līki, tak tomēr. Varbūt, kādam noder :)

<script type="text/javascript">
function changeContent() {
newContent = '<tr><td><input type="text" name="jhg"/></td><td><select name="x"><option value="1">1</option></select></td></tr>';

if (window.ActiveXObject) {
	xmlDoc = new ActiveXObject("Microsoft.XMLDOM");	
	xmlDoc.async="false";
	xmlDoc.loadXML(newContent);
	newTds = xmlDoc.getElementsByTagName('td');
	newTr = document.createElement('tr');

	for(i = 0;i < newTds.length; i++) {
		td = document.createElement('td');
		td.innerHTML = newTds[i].xml;
		newTr.appendChild(td);
	}	

	tBody = document.getElementById('row');
	newtBody = document.createElement('tBody');
	newtBody.appendChild(newTr);
	tBody.replaceNode(newtBody);
	}
else {
	tr = document.getElementById('row');
	tr.innerHTML = newContent;
}	
}
</script>
....
<table width="50%" border="1">
<tBody id="row">
<tr>
	<td>init content</td>
	<td>more content</td>
</tr>
</tBody>
</table>

Edited by john.brown
Link to comment
Share on other sites

ibio. Paņem acis rokā:

JavaScript dokumentācija

 

* Client-Side JavaScript Guide (v1.3)

* Client-Side JavaScript Reference (v1.3)

* Gecko DOM Reference

* HTML and DHTML Reference

 

Ja gribi jaunāku JS (v1.5 atbalsta FF 1.x, cik zinu), tad to vari gūglē pats uzmeklēt. v1.3 ir IE 6 atbalstītā JS versija.

Link to comment
Share on other sites

bubu, es redzēju, neesmu akls.

 

Jauna problēma :) Gribu realizēt undo funkciju. šoreiz ar ie viss labi, tak ff cūkojas :)

var oldtBody = false;
function replaceContent() {
tBody = document.getElementById('row');
oldtBody = tBody.cloneNode(true);
....
}
function undo() {
tBody = document.getElementById('row');
tBody.replaceNode(oldtBody);
}

Kā jau teicu, ie dara kas gaidīts - aizvieto rindas saturu ar veco. Tak FF saka, ka tBody.replaceNode is not a function.

Mēģinājums darīt šitā:

tBody.innerHTML = oldtBody.innerHTML;

arī neko nedod. Vienkārši nekas nenotiek, pat kļūdu neziņo. innerHTML, kurš gaidīts, tanī oldtBody ir.

Varbūt kāds tomēr ko saturīgu pateiks?

Edited by john.brown
Link to comment
Share on other sites

Nu un tos linkus tu nesauc par dokumentāciju? nja.. Es šajos četros linkos esmu atradis visu, ko man vajadzējis atrast.

Paskaties vai tBody ir normāls objets. tb vai uz alert(tBody); nepasak null.

 

Un paņem normālu JS debugeri firefoxim - Venkman. Tu IE arī bez debugera priekš JS dzīvo? MS dala pa velti - Microsoft Script Debugger. Skaisti saintegrējas IĒ.

Link to comment
Share on other sites

Jau atrisināju :)

function undo() {
tBody = document.getElementById('row');
oldTr = tBody.getElementsByTagName('tr')[0];
newTr = oldtBody.getElementsByTagName('tr')[0];
tBody.replaceChild(newTr,oldTr);
}

Iet abos. Debugeri lietoju. No kurienes tad es zinātu, ka "tBody.replaceNode is not a function" :)

 

Par linkiem ;) Jāsaka, es tajos neesmu nekad neko atradis pat tad, ja skaidri zinu, ko meklēju :) Acīm redzot mana domāšana slikti savietojas ar sunisko stilu šais lapās... Nesaprotu, kā var liet 3 ekrānus ūdens, un tik pāris rindiņas koda, kas nekā nepaskaidro? MS vēl kaut cik jēdzīgi doki ir...

Kaut jāsaka, būšu samelojis. šo gadījumu tomēr ar ecmascript language binding atrisināju :)

Edited by john.brown
Link to comment
Share on other sites

×
×
  • Create New...