2012-12-18 42 views
11

jQuery的:如何让jQuery的锚href的值

$(document).ready(function() { 
    $("a.change_status").click(function(){ 
     var status_id = $("a").val(); 
     alert(status_id); 
     return false; 
    }); 
}); 

HTML:

<a href="?status=5" class="change_status">Aminul</a><br/> 
<a href="?status=25" class="change_status">Arif</a><br/> 
<a href="?status=15" class="change_status">Sharif</a><br/> 

我需要status_id出于某种原因,我的锚标记是动态的。我不能使用ID或使类名称动态。我想,我需要使用$this来获得我的价值。

回答

10

这一个很简单:

 $(document).ready(function() { 
     $("a.change_status").click(function(){ 
      var status_id = $(this).attr('href').split('='); 
      alert(status_id[1]); 
      return false; 
     }); 
    }); 

http://jsfiddle.net/NmzRV/

1
$(document).ready(function() { 
     $("a.change_status").click(function(){ 
      var status_id = $(this).attr("href"); 
      alert(status_id); return false; 
     }); 
    }); 
2
$('a').attr('href'); 

应该做的伎俩

5
var status_id= $(this).attr("href").match(/status=([0-9]+)/)[1]; 
+0

感谢。它完美地适用于我。 – user1911703

0
$("a.change_status").click(function(){ 
    var status_id = $(this).attr('href'); 
    alert(status_id); 
}); 
3

你有两个不同的问题在这里...首先你需要使用this找到实际的点击链接,然后找到的价值那个href属性。

$(document).ready(function() { 
    $("a.change_status").click(function() { 
     var status_id = parseURL($(this).attr("href")); 
     alert(status_id); 
     return false; 
    }); 
}); 

而且,因为JavaScript没有办法拉URL参数,你必须写一个函数(在本例中parseURL)在其中找到变量“状态”的值:

function parseURL(theLink) { 
    return decodeURI((RegExp('status=' + '(.+?)(&|$)').exec(theLink) || [, null])[1]); 
} 

请参阅以下的jsfiddle:

http://jsfiddle.net/ZKMwU/

1

你可以做到这一点,如:

$(document).ready(function() { 
    $("a.change_status").click(function() { 
     var status_id = $(this).attr("href"); 
     alert(status_id); 
     return false; 
    }); 
});