获取jQuery上的href属性

获取jQuery上的href属性,jquery,get,href,each,attr,Jquery,Get,Href,Each,Attr,我有几排桌子 <tr class="b_row"> <td> <div class="cpt"> <h2> <a href="/ref/ref/1.html">example</a> </h2> </div> </td> </tr> <!--m

我有几排桌子

<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>

问题:变量
a_href
在循环中始终是/ref/ref/1.html

您应该引用当前处理的元素,所以写:

var a_href = $(this).find('div.cpt h2 a').attr('href');
应该是

var a_href = $(this).find('div.cpt').find('h2 a').attr('href');

在第一行中,查询搜索整个文档。在第二种情况下,查询从
tr
元素开始,只获取它下面的元素。(如果愿意,您可以将
组合起来查找
,我将它们分开以说明这一点。)

添加对
的引用,该引用指向您的

$("tr.b_row").each(function(){
    var a_href = $( this ).find('div.cpt h2 a').attr('href');
    alert ("Href is: "+a_href);
});
使用
$(this)
获取所需元素

function openAll()
{
     $("tr.b_row").each(function(){
        var a_href = $(this).find('.cpt h2 a').attr('href');
        alert ("Href is: "+a_href);
     });
}

非常简单,使用
作为上下文:

也就是说,只在
这个
中找到
'div.cpt'
,使用这个:

$(function(){
    $("tr.b_row").each(function(){
    var a_href = $(this).find('div.cpt h2 a').attr('href');
    alert ("Href is: "+a_href);

    });
});
查看工作演示:

function openAll()
{
     $("tr.b_row").each(function(){
        var a_href = $(this).find('.cpt h2 a').attr('href');
        alert ("Href is: "+a_href);
     });
}
var a_href = $('div.cpt', this).find('h2 a').attr('href');
$(function(){
    $("tr.b_row").each(function(){
    var a_href = $(this).find('div.cpt h2 a').attr('href');
    alert ("Href is: "+a_href);

    });
});