jQuery ..現在の要素の前に文字列を引く
質問
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は<!> quot; Link 3 <!> quot;を追加しています。各<!> quot;リンク2 <!> quot; ..
の後にリンクします$("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()メソッドを使用して、前の兄弟を取得できます。それを行うか、リンク .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");
});
他のヒント
<!> quot; rowTitle <!> quotなどのクラスを追加する場合タイトルをラッピングしているすべての太字タグに対して、次のことができるはずです。
$("a:contains('Link 2')").each(function(){
$(this).parent().find(".rowTitle").html
});
またはかなり似たもの。 jQuery Docs はかなり包括的であり、そこをすばやく検索すると、自分が何であるかを見つけるのに役立ちます。探しています。
私はjQueryの専門家ではありませんが、作業にかなり近いと考えています。おそらく、この問題にもう少し精通している人が私の答えを詳しく説明してくれるかもしれません(私も学習を気にしないので)。
所属していません StackOverflow