Pregunta

HTML ..

<div class="row">
   <div>
      <b>Title A</b> <a href="#">Link 1</a> <a href="#">Link 2</a>
   </div>
   Content A
</div>
<div class="row">
   <div>
      <b>Title B</b> <a href="#">Link 1</a> <a href="#">Link 2</a>
   </div>
   Content B
</div>
<div class="row">
   <div>
      <b>Title C</b> <a href="#">Link 1</a> <a href="#">Link 2</a>
   </div>
   Content C
</div>

jQuery ..

Hasta ahora mi JS agrega un " Enlace 3 " enlace después de cada " Enlace 2 " ..

$("a:contains('Link 2')").each(function(){
   $(this).after(' <a href="#">Link 3</a>');
});

Para cada elemento del bucle, ¿cómo accedería al título?

$("a:contains('Link 2')").each(function(){
   // I need to find the title string for each row. So is there a way to find elements before the $(this) identifier?
   $(this).after(' <a href="#">Link 3</a>');
});
¿Fue útil?

Solución

Puede obtener el hermano anterior utilizando el .prev () método . Puede hacer eso, o puede obtener los enlaces .parent () , y luego .find () la primera etiqueta <b>.

<p>Something Here</p> <!-- This becomes red -->
<p class="pickme">Hello World</p>

$(document).ready(function(){
  $(".pickme").prev().css("color","red");
});

o

<p>Something Here</p> <!-- this becomes green -->
<p class="pickme">Hello World</p>

$(document).ready(function(){
  $(".pickme").parent().find("p:first").css("color", "green");
});

Otros consejos

Si agrega una clase, como " rowTitle " a todas sus etiquetas en negrita que envuelven sus títulos, debe poder hacer:

$("a:contains('Link 2')").each(function(){
   $(this).parent().find(".rowTitle").html
});

O algo bastante similar. Los jQuery Docs son bastante completos, y una búsqueda rápida allí debería ayudarlo a encontrar lo que está buscando. buscando.

No soy un experto en jQuery, pero creo que eso está bastante cerca de funcionar. Quizás alguien un poco más versado en el asunto podría dar más detalles sobre mi respuesta (ya que no me importaría aprender también).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top