2012-12-18 11 views
11

jQuery erhalten:wie jquery Anker href Wert

$(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/> 

Ich brauche status_id und aus irgendeinem Grund mein Anker-Tag ist dynamisch. Ich kann keine ID verwenden oder den Klassennamen dynamisch machen. Ich denke, ich brauche $this, um meinen Wert zu bekommen.

Antwort

10

Dieser ist einfach:

 $(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'); 

sollte hier der Trick

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

Dank. es funktioniert perfekt für mich. – user1911703

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

Sie haben zwei getrennte Fragen tun ... zuerst müssen Sie die tatsächliche geklickt Link mithilfe this finden und dann den Wert zu finden, das href-Attribut.

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

Auch, weil Javascript keine Möglichkeit hat URL-Parameter zu ziehen, müssen Sie eine Funktion (im Beispiel parseURL), in dem schreiben den Wert der Variablen „Status“ zu finden:

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

Siehe folgende jsfiddle:

http://jsfiddle.net/ZKMwU/

1

Sie können diese wie tun:

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