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