1

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 在每个“链接 2”之后添加了一个“链接 3”链接。

$("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>');
});
4

2 回答 2

1

您可以使用.prev() 方法获取上一个兄弟。你可以这样做,或者你可以得到链接.parent(),然后.find()第一个<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");
});
于 2009-06-23T01:36:17.603 回答
1

如果您在包装标题的所有粗体标签中添加一个类,例如“rowTitle”,您应该能够:

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

或者类似的东西。jQuery Docs相当全面,在那里快速搜索应该可以帮助您找到所需的内容。

我不是 jQuery 专家,但我相信这已经很接近工作了。也许更精通此事的人可以详细说明我的答案(因为我也不介意学习)。

于 2009-06-23T01:43:29.557 回答