2011-11-10 19 views
6

Estoy usando el nuevo método $ .parseXML() con jQuery 1.5 para analizar una cadena en un objeto XML válido. Una vez que convierto la cadena en un objeto jQuery XML, 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 se supone que es posible. A continuación se muestra un fragmento de código que ilustra el problema:No se pueden insertar elementos en un objeto jQuery XML

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 para hacer esto? Gracias por adelantado.

Respuesta

8

El problema aquí es que está agregando una cadena en lugar de un elemento DOM. Para añadir un elemento DOM que necesita para envolver el nuevo XML en una expresión $(...)

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

violín: http://jsfiddle.net/kDmD8/

+0

me siento tan tonta por pasar por alto eso. ¡Gracias por la rápida respuesta! – jake

+0

@jake no se sienta tonto. Todos cometemos errores. Eso es lo que stackoverflow es para;) – JaredPar

Cuestiones relacionadas