Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

164
Visualizações
¿Cómo retrocedes a través de una cadena usando Jquery?

Pensé que había algo en jquery que te permitía retroceder a través de una cadena.

Quiero hacer esto:

 var a = $(this).parent().addClass('test').goBackToParent().children('selectorHere').text()

Quiero obtener el padre del objeto que tengo y agregarle un nombre de clase. Una vez que haga eso, quiero revisar sus elementos secundarios y encontrar un elemento secundario que coincida con mi selector y obtener su texto.

¿Puedo hacer esto, o tengo que hacer esto en su lugar:

 $(this).parent().addClass('test'); var a = $(this).parent().children('selectorHere').text()

Editar

Estoy usando "fin" ahora pero no funciona. Hice un ejemplo que puedes probar aquí .

 <table> <th> <tr>one</tr> <tr>two</tr> </th> <tr> <td id="test"><a href="#"><img src="http://ais.web.cern.ch/ais/apps/hrt/SMT%20v2/Images/btnbar_edit.png" /></a></td> <td class="selectMe">1</td> </tr> </table> $(function() { $('#test').click(function() { // does not work var a = $(this).parent().addClass('afb') .end().children('.selectMe').text(); // works var b = $(this).parent().children('.selectMe').text(); alert(a + ' -should have value'); alert(b + ' -works'); return false; }); });
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Estás buscando el método end() :

 var a = $(this).parent().addClass('test').end() .children('selectorHere').text();

El método:

Finaliza la operación de filtrado más reciente en la cadena actual y devuelve el conjunto de elementos coincidentes a su estado anterior.

Actualización : según su fragmento de html, ¡en realidad no necesita end en absoluto! Lo importante de jQuery es que la mayoría de los métodos no transversales devuelven una copia de sí mismos, por lo que si llama a $(this).addClass('test'), obtiene una copia de $(this) de vuelta.

Así que para tu fragmento:

 // does not work var a = $(this) // points at #test .parent() // now refers to the tr which holds test .addClass('afb') // still refers to the tr .end() // now we're back to #test .children('.selectMe') // empty! there are no direct children of #test which match .selectMe .text(); // empty

En su lugar, inténtelo sin el final:

 // works var a = $(this) // points at #test .parent() // now refers to the tr which holds test .addClass('afb') // still refers to the tr .children('.selectMe') // found the .selectMe td .text(); // returns '1'
over 4 years ago · Santiago Trujillo Relatório

0

Está buscando el método end() . Simplemente utilícelo en lugar de goBackToParent() .

La mayoría de los métodos transversales de DOM de jQuery operan en una instancia de objeto jQuery y producen una nueva, que coincide con un conjunto diferente de elementos DOM. Cuando esto sucede, es como si el nuevo conjunto de elementos se colocara en una pila que se mantiene dentro del objeto. Cada método de filtrado sucesivo empuja un nuevo conjunto de elementos a la pila. Si necesitamos un conjunto de elementos más antiguo, podemos usar end() para sacar los conjuntos de la pila.

over 4 years ago · Santiago Trujillo Relatório

0

ver end()

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda