Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

162
Views
¿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 answers
Answer question

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 Report

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 Report

0

ver end()

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!