Jump to content
php.lv forumi

innerHTML nenoslēdz tagu


ray

Recommended Posts

Problēma tāda, ka ar js ievadīto html kodu nevar noslēgt div, jauno div liek iekšā iepriekšizveidotajā, bet vajag lai noslēdz iepriekšējo un izveido jaunu

 

html

<div id="nr_1"><a onClick="jauns('1')">jauns</a></div>

javascript

function jauns(nummurs) {
elem = document.getElementById("nr_"+nummurs);
nummurs++;
elem.innerHTML = "</div><div id=\"nr_"+nummurs+"\"><a onClick=\"jauns('"+nummurs+"')\">jauns</a>";
}

Link to comment
Share on other sites

Es īsti nesaprotu, ko tu nesaproti. :) Bet lieta tāda, ka ja tu ar innerHTML pievieno kādu saturu dokumentam, tad tas uzreiz tiek nopārsēts un pārvērts DOM kokā. Tātad loģiski, ka tad arī nestrādās tavs risinājums, jo DOM koks nevar saturēt nenoslēgtus elementus.

 

Tev drīzāk vajag ko šādu (es izmantošu jquery):

function jauns(nummurs) {
elem = $("nr_"+nummurs);
nummurs++;
elem.after("<div id=\"nr_"+nummurs+"\"><a onClick=\"jauns('"+nummurs+"')\">jauns</a></div>");
}

Link to comment
Share on other sites

tomēr laikam derēs. neievēroju "elem.after"

cik saprotu, lai darbotos tavs piedāvātais skripts vajag jquery.

novilku no lapas jquery.js, pamainīju js kodu. tajā div ieliek prasīto vertību, bet jaunu elementu pēc pirmā elementa nepievieno. kur varētu būt kļūda?

 

js:

function jauns(nummurs) {
elem = document.getElementById("nr_"+nummurs);
elem.innerHTML = "ir ok";
elem2 = $("nr_"+nummurs);
nummurs++;
elem2.after("<div id=\"nr_"+nummurs+"\"><a href=\"java script: void();\" onClick=\"jauns('"+nummurs+"')\">jauns</a></div>");
}

Edited by ray
Link to comment
Share on other sites

bez jquery

<script type="text/javascript">
function jauns(nummurs) {
var elem = document.getElementById('nr_'+nummurs); // meklē pēc nummura
if (elem) { // ir atradis
	elem.innerHTML = 'ir ok'; // nomaina saturu
	var el2 = document.createElement('div'); // izveido jaunu
	el2.id = 'nr_' + (++nummurs); // iedod id
	elem.parentNode.insertBefore(el2, elem.nextSibling); // pievieno aiz 
	el2.innerHTML = '<a href="java script: void();" onclick="jauns('+nummurs+')">jauns</a>'; // saliek saturu
}
}
</script>

<div id="nr_1"><a href="java script:;" onclick="jauns(1)">jauns</a></div>

Edited by indoom
Link to comment
Share on other sites

×
×
  • Create New...