Jump to content
php.lv forumi

Recommended Posts

Posted

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>";
}

Posted

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>");
}

Posted

tas laikam nederēs, jo spaidot "Jauns", man jābūt iespējai pievienot bezgalīgi daudz div ar attiecīgu saturu tajā (šajā gadījumā input priekš formas)

Posted (edited)

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
Posted (edited)

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
×
×
  • Create New...