que nodos ejemplos php html dom append prepend

php - ejemplos - ¿Anexar y anteponer nodos de texto a un elemento HTML usando DOM?



nodos javascript (2)

Aquí está mi código HTML

<html> <body> <div>A sample block <div>and child block</div></div> </body> </html>

¿Cómo puedo usar DOM para agregar y anteponer nodos de texto a los elementos del CUERPO sin dañar a sus hermanos?

$dom = new DOMdocument(); @$dom->loadHTML($html); $xpath = new DOMXPath($dom); $body = $xpath->query(''//body'')->item(0);

Me gusta esto

<html> <body> Newly prepended text <div>A sample block <div>and child block</div></div> Newly appended text </body> </html>


Es mi código de agregar y eliminar entrada de archivo

<span class="file_box"><span><input class="text" type="text" name="emails[]" value="" /><br /></span></span><div style="padding: 0 0 5px 160px;"> <input type="button" class="add" value="+" style="width: 25px; height: 25px; margin: 0 5px 0 0;" onclick="addFile(this);" /><input type="button" class="drop" value="-" style="width: 25px; height: 25px;" onclick="dropFile(this);" disabled="true" /> </div>

y este js

var FileCount = 1; function addFile(object){ if(document.getElementById) { var el = object.parentNode.previousSibling.firstChild; var newel = el.parentNode.appendChild(el.cloneNode(true)); newel.style.marginLeft = "160px"; FileCount++; if(FileCount > 1){ object.nextSibling.disabled = false; } } } function dropFile(object){ if(document.getElementById) { var el = object.parentNode.previousSibling.lastChild; el.parentNode.removeChild(el); FileCount--; if(FileCount == 1){ object.disabled = true; } } }

Mira puedes encontrar por ti mismo ese algo


Puede crear nodos de texto con DOMText (o usando DOMDocument::createTextNode ):

$before = new DOMText(''Newly prepended text''); // $before = $dom->createTextNode(''Newly prepended text''); $after = new DOMText(''Newly appended text''); // $after = $dom->createTextNode(''Newly appended text'');

Ahora, añadir es solo:

$body->appendChild($after);

Para prependir, podemos usar DOMNode::firstChild para obtener el primer hijo del cuerpo y DOMNode::insertBefore :

$body->insertBefore($before, $body->firstChild);