我有一些表格行
<tr class="b_row">
<td>
<div class="cpt">
<h2>
<a href="/ref/ref/1.html">example</a>
</h2>
</div>
</td>
</tr>
<!--more elements -->
<tr class="b_row">
<td>
<div class="cpt">
<h2>
<a href="/ref/two/23.html">example N</a>
</h2>
</div>
</td>
</tr>
我需要在属性中获取超链接。我用这个脚本
function openAll()
{
$("tr.b_row").each(function(){
var a_href = $('div.cpt').find('h2 a').attr('href');
alert ("Href is: " + a_href);
}
问题:变量a_href
始终是/ ref / ref / 1.html
答案 0 :(得分:49)
在循环中你应该引用当前的procceded元素,所以写:
var a_href = $(this).find('div.cpt h2 a').attr('href');
答案 1 :(得分:6)
var a_href = $('div.cpt').find('h2 a').attr('href');
应该是
var a_href = $(this).find('div.cpt').find('h2 a').attr('href');
在第一行中,您的查询将搜索整个文档。在第二个中,查询从您的tr
元素开始,只获取其下的元素。 (如果您愿意,可以将find
组合起来,我将它们分开来说明这一点。)
答案 2 :(得分:2)
非常简单,使用this
作为上下文:http://api.jquery.com/jQuery/#selector-context
var a_href = $('div.cpt', this).find('h2 a').attr('href');
其中说,仅在'div.cpt'
this
答案 3 :(得分:2)
使用此:
$(function(){
$("tr.b_row").each(function(){
var a_href = $(this).find('div.cpt h2 a').attr('href');
alert ("Href is: "+a_href);
});
});
答案 4 :(得分:1)
添加对this
的引用,引用您的b_row
:
$("tr.b_row").each(function(){
var a_href = $( this ).find('div.cpt h2 a').attr('href');
alert ("Href is: "+a_href);
});
答案 5 :(得分:0)
使用$(this)
获取所需元素。
function openAll()
{
$("tr.b_row").each(function(){
var a_href = $(this).find('.cpt h2 a').attr('href');
alert ("Href is: "+a_href);
});
}