从锚标记获取href值

时间:2012-01-24 17:38:41

标签: jquery html

我有一个链接

<ul class="sub_menu">
    <li><a href="caps">Caps</a></li>
    <li><a href="jeans">Jeans</a></li>
    <li><a href="shorts">Shorts</a></li>
    <li><a href="foootwear">Footwear</a></li>
</ul>

我想获取href值,我尝试了以下代码:

$(document).ready(function() {
    $('ul.sub_menu a').click(function() {
        var txt = $(this).attr('href');
        alert(txt);
    )};
)};

但我收到此错误

 The requested URL /new/caps was not found on this server.

我不想抓取文字,我使用.text();成功了,我想要href值。

4 个答案:

答案 0 :(得分:4)

return false添加到click事件处理程序的末尾以停止执行链接。

$(document).ready(function() {
    $('ul.sub_menu a').click(function() {
        var txt = $(this).attr('href');
        alert(txt);
        return false;
    )};
)};

如果您希望事件仍在DOM上传播,您也可以使用event.preventDefault()

$(document).ready(function() {
    $('ul.sub_menu a').click(function(event) {
        var txt = $(this).attr('href');
        alert(txt);
        event.preventDefault();
    )};
)};

注意:在jQuery事件处理程序中,return false;与调用event.preventDefault().stopPropagation();相同。

答案 1 :(得分:0)

您需要执行以下操作:

$(document).ready(function() {
    $('ul.sub_menu a').click(function(e) {
        e.preventDefault();
        var txt = $(this).attr('href');
        alert(txt);
    )}; 
)};

注意:e.preventDefault();这会阻止您单击时的默认链接行为(导航到)。

答案 2 :(得分:0)

试试这个

$(document).ready(function() {
$('ul.sub_menu a').click(function() {
    var txt = $(this).attr('href');
   alert(txt);
   return false;
)};
)};

答案 3 :(得分:0)

看起来有两个问题:

  1. 您需要使用event.preventDefault();return false来停止点击 AND

  2. 您需要修复代码中的)。现在它们不合适。在这两种情况下,您都有)};。应为});

  3. 代码应

    $('ul.sub_menu li a').click(function() {
        event.preventDefault();
        var txt = $(this).attr('href');
        alert(txt);    
    }); <-- here is where the parantheses are wrong.
    

    http://jsfiddle.net/jasongennaro/Lz2Sw/