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 に答える