jquery代码,用于获取正在单击的按钮附近的'a'标记的href

时间:2014-02-20 12:19:32

标签: javascript jquery css

美好的一天。

我只想在最终用户点击链接附近的按钮后获取链接的href。但问题是有很多按钮和链接。因此,如果最终用户点击第一个按钮,它应显示“www.a.com”。如果单击第3个按钮,则应显示“www.c.com”。任何人都可以帮助如何完美地完成它吗?感谢...

<div>
<a href='www.a.com'>a</a><input type='button' class='btn' onClick='validate()' value='V'/>
</div>
<div>
<a href='www.b.com'>b</a><input type='button' class='btn' onClick='validate()' value='V'/>
</div>
<div>
<a href='www.c.com'>c</a><input type='button' class='btn' onClick='validate()' value='V'/>
</div>
<div>
<a href='www.d.com'>d</a><input type='button' class='btn' onClick='validate()' value='V'/>
</div>

<script type="text/javascript">
function validate()
{
alert($('div a').closest('a').attr('href'));
}
</script>

6 个答案:

答案 0 :(得分:1)

尝试使用parentchild

function validate()
{
    alert($(this).parent('div').child('a').attr('href'));
}

或者甚至可以使用prev

来获取它
alert($(this).prev('a').attr('href'));

答案 1 :(得分:1)

我应该这样做:

$(document).on("click",".btn",function(){
  alert($(this).prev('a').attr('href'));
});

使用此代码不需要onclick

答案 2 :(得分:1)

使用:

function validate()
{
   alert($(this).siblings('a').attr('href'));
}

答案 3 :(得分:1)

 $(document).ready(function () {
        $(".btn").click(function () {
            alert($(this).parent().children("a").attr("href"));
        });

    });

答案 4 :(得分:1)

从所有按钮中删除onClick ='validate()' 并尝试以下代码

  $('.btn').click(function () {

        alert($(this).prev().attr("href"));
    });

答案 5 :(得分:0)

对事件源使用need prev(),同时将源对象传递给函数

<强> Live Demo

HTML

onClick='validate(this)'

的Javascript

function validate(obj)
{
   alert($(obj).prev('a').attr('href'));
}