2009-06-24 12 views

Respuesta

19

utilizar un filtro de atributo, en particular la attributeEquals filter:

$("node[name='x']"); 

Para seleccionar todos los otros nodos, utilice el attributeNotEquals filter:

$("node[name!='x']"); 

A continuación, puede aplicar jQuery manipulations para mover estos nodos en otro lugar.

Tenga en cuenta que los selectores de estilo XPath en desuso en la Versión 1.2, y se han eliminado por completo en jQuery 1.3.

Si puede influir en lo que envía el servidor, es posible que desee cambiar al uso de JSON en cambio, puede que le resulte más fácil de analizar.

1

Puede utilizar XPath en jQuery para seleccionar los nodos:

$ ("// nodo [@ name = 'x']")

http://docs.jquery.com/DOM/Traversing/Selectors

+0

1 - Muy elegante segunda respuesta :) Gracias – karim79

+0

de trabajo hasta el momento. ¿Pero cómo hago la parte no? – uriDium

+2

La sintaxis XPath ya no se utiliza en jQuery 1.2 y no funciona en todos los más de 1.3, consulte la sección de atributos en esta página aquí: http://docs.jquery.com/Selectors –

1

jQuery acepta Expresiones xpath también.

$('node[name="x"]')

seleccionará todos los nodos denominados "nodo" con un atributo de "nombre" que tiene el valor "x"

+0

Hasta aquí todo bien. Mi xpath es terrible. ¿Cómo lo modifico para seleccionar dónde NO está todo para name = x? – uriDium

+0

$ ('nodo de [nombre] [no (name = "x"]') encontrará todos los nodos con nombres no es igual a 'x' –

7
success: function(xml) { 
    $(xml.find('node').each(function(){ 
    if($(this).attr('name')=='x') { 
     //go to one table 
    } else { 
     //go to another table 
    } 

    } 
} 
Cuestiones relacionadas