jQuery的..当前元素之前,拉弦
问题描述:
HTML ..jQuery的..当前元素之前,拉弦
<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>');
});
答
您可以通过使用.prev() method得到的前一个同级。您可以这样做,或者您可以获得链接.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");
});
答
如果你添加一个类,如“rowTitle”所有你大胆的标签被包裹你的标题,你应该能够做到:
$("a:contains('Link 2')").each(function(){
$(this).parent().find(".rowTitle").html
});
或者相当类似的东西。 jQuery Docs是相当全面的,在那里快速搜索应该可以帮助你找到你要找的东西。
我不是jQuery专家,但我相信这相当接近工作。也许有人对这个问题更精通一点,可以详细解释我的答案(因为我不介意学习)。