我希望将整个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
中找到该链接,我希望点击不执行任何操作。
答案 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>
经过测试