Búsqueda de sitios web

javascript - No se pueden insertar elementos en un objeto XML de jQuery


Estoy utilizando el nuevo método $.parseXML() con jQuery 1.5 para analizar una cadena y convertirla en un objeto XML válido. Una vez que convierto la cadena en un objeto XML de jQuery, puedo navegar por el DOM del XML y buscar valores. Incluso puedo cambiar los valores de diferentes atributos. Sin embargo, no puedo insertar nuevos elementos en el XML, aunque creo que esto debería ser posible. A continuación, se muestra un fragmento de código que ilustra el problema:

var myXml = "<one attr='a'><two attr='b'/><three attr='c'><four attr='d'/></three></one>";
myXml = $.parseXML(myXml);
$(myXml).find('two').attr('attr','new value'); //<-- This works
alert($(myXml).find('two').attr('attr')); //<-- This works too
$(myXml).find('three').append('<five>some value</five>'); //<-- Does not work
alert($(myXml).find('five').text()) // <--Null

¿Alguien tiene ideas sobre cómo hacer que esto funcione? Gracias de antemano.

Respuesta #1

El problema aquí es que estás agregando una cadena en lugar de un elemento DOM. Para agregar un elemento DOM necesitas envolver el nuevo XML en una expresión $ (...)

$(myXml).find('three').append($('<five>some value</five>'));

Fiddle: http://jsfiddle.net/kDmD8/