jQuery..вытягивание строки перед текущим элементом

StackOverflow https://stackoverflow.com/questions/1030220

  •  06-07-2019
  •  | 
  •  

Вопрос

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..

Пока что мой JS добавляет ссылку "Link 3" после каждой "Link 2"..

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

Для каждого элемента в цикле, как бы я получил доступ к заголовку?

$("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>');
});
Это было полезно?

Решение

Вы можете получить предыдущего родственного брата, используя .метод prev().Вы можете сделать это, или вы можете получить ссылки .родитель(), а затем .найти() первый <b> пометка.

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

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

или

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

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

Другие советы

Если вы добавите класс, такой как "rowTitle", ко всем вашим выделенным жирным шрифтом тегам, которые заключают ваши заголовки, вы сможете сделать:

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

Или что-то довольно похожее.В Документы jQuery являются довольно полными, и быстрый поиск там должен помочь вам найти то, что вы ищете.

Я не эксперт по jQuery, но я считаю, что это довольно близко к работе.Возможно, кто-то немного более сведущий в этом вопросе мог бы подробнее остановиться на моем ответе (поскольку я тоже был бы не прочь поучиться).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top