En el jQuery documentation for the child selector vi esta nota:¿Cuál es la nueva forma correcta de utilizar un selector secundario con un nodo de contexto en jQuery?
Nota: El selector
$("> elem", context)
dejará de estar disponible en una versión futura. Por lo tanto, se desaconseja su uso en lugar de utilizar selectores alternativos.
que utilizan este patrón todo el tiempo, por lo general como esto:
$nodes.find('> children[something=morecomplicated] > somethingelse');
Sin embargo, no entiendo lo que los selectores "alternativas" se refieren a que podría ser. ¿Cuál es la forma correcta de escribir un selector que atraviesa los elementos secundarios inmediatos de un nodo de contexto? Como una ventaja, ¿alguien puede explicar por qué esto está depreciado? Todas las alternativas que todos están dando parecen asombrosamente feo.
Aquí hay algunas cosas que No trabajo:
// does not guarantee that '.child' is an immediate child
$nodes.find('.child > .grandchild');
// this will return empty array in recent jQuery
// and will return full list of children in older jQuery
$nodes.children('.child > .grandchild');
// Anything like this which forces you to split up the selector.
// This is ugly and inconsistent with usual selector ease-of-use,
// and is a non-trivial conversion for long or complex selectors.
$nodes.children('.child').children('.grandchild');
// After all, no one would ever recommend
$nodes.find('.this').children('.that');
// instead of
$nodes.find('.this > .that');
Ver aquí para información adicional: http: // stackoverflow. com/questions/7833558/child-selector-deprecated –
Ah, no vi esa pregunta incluso después de una búsqueda diligente. Ninguna de las respuestas es realmente muy satisfactoria, sin embargo. –
Definitivamente planteas un buen punto. Pero, a menos que descubras algo de lo que no estoy al corriente, creo que encadenar llamadas de niños y dividir el selector es probablemente tu única opción. – Dan