Por ejemplo tengo xml:
<Cars> <Car> <Name>BMW</Name> <Color>Blue</Color> </Car> <Car> <Name>Mercedes</Name> <Color>Yellow</Color> </Car> <Car> <Name>Mercedes</Name> <Color>Blue</Color> </Car> </Cars>Y necesito elegir todos los autos con color Azul. ¿Hay alguna manera de hacerlo de manera eficiente con selectores y/o bucles?
El selector :contains() y parent función principal de jQuery ayudan a lograr este objetivo.
El selector :contains() , selecciona todos los elementos que contienen el texto especificado. Más información: https://api.jquery.com/contains-selector/#contains1
El método .parent() obtiene el padre de cada elemento en el conjunto actual de elementos coincidentes, opcionalmente filtrado por un selector. Más información: https://api.jquery.com/parent/#parent-selector
En el siguiente código, objs contiene dos elementos:
var objs = $('Car>Color:contains("Blue")').parent() console.log(objs.eq(0).html()) console.log(objs.eq(1).html()) <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <Cars> <Car> <Name>BMW</Name> <Color>Blue</Color> </Car> <Car> <Name>Mercedes</Name> <Color>Yellow</Color> </Car> <Car> <Name>Mercedes</Name> <Color>Blue</Color> </Car> </Cars>