将div链接到其中的href

时间:2013-05-10 12:45:45

标签: javascript jquery html

我希望将整个staff-container链接到其中的第一个href。 (staff-picture中的那个)。我如何用jQuery编写这个?我对attr()很困惑,我知道我必须使用它。

在以下HTML中,jQuery应将staff-container链接到google.com。

<div class="staff-container">
    <div class="staff">
        <div class="staff-picture">
            <a href="http://www.google.com/"><img src="img/people/teachers/ahmed.png" /></a>
        </div>
        <p><span class="bold">Mr. Ahmed</span><br />
        Ext. 13417<br />
        Room 417/323<br />
        <a href="mailto:email@wcskids.net">email@wcskids.net</a></p>
    </div>
</div>
编辑:感谢我使用这个jQuery的答案:

$('.staff-container').click(function() {
    window.location.href = $(this).find('a').attr('href');
});

如果staff-picture内没有链接,我不希望它链接电子邮件。如果jQuery无法在staff-picture中找到该链接,我希望点击不执行任何操作。

3 个答案:

答案 0 :(得分:3)

试试这个

$('.staff-container').click(function(e) {

    if($(this).find('a').attr('href'))
        window.location.href = $(this).find('a').attr('href');       
    e.preventDafault();
});
像这样.. ??如果你想要特别的第一个锚标签那么你可以给出像

window.location.href = $(this).find('a').eq(0).attr('href');

答案 1 :(得分:1)

试试这个:

$('.staff-container').click(function() {
    var $first_link = $(this).find('a').first();
    window.location.href = $first_link.attr('href');
});

答案 2 :(得分:1)

纯JS版:应该比jQuery快一点

<script>
function link(loc){
    var href=loc.getElementsByTagName('a')[0].href;
    console.log(this);
    console.log(href);
    loc.setAttribute("onclick","window.location.href='"+href+"'");
    loc.removeAttribute("onmouseover","");
}
</script>
<div class="staff-container" onmouseover="link(this)">
    <div class="staff">
        <div class="staff-picture">
            <a href="http://www.google.com/"><img src="img/people/teachers/ahmed.png" /></a>
        </div>
        <p><span class="bold">Mr. Ahmed</span><br />
        Ext. 13417<br />
        Room 417/323<br />
        <a href="mailto:email@wcskids.net">email@wcskids.net</a></p>
    </div>
</div>

经过测试