2010-08-11 2 views
0

Je stocke une chaîne (url) dans une variable cela peut ressembler à un/deux/trois/test.aspx? ID = 12312 Je veux extraire la valeur de la chaîne de queues, pas de window.location mais du htmlObtenir la fin de la chaîne avec Javascript

Je pensais que je pouvais utiliser et écrire substring

var link = ($(this).find('a').attr('href')); 
var qs = link.substring(link.indexOf("="), text.indexOf(" ")) 

mais il renvoie la chaîne avant que = et non après.

Qu'est-ce que je fais mal? Merci d'avance.

Répondre

0

Il suffit d'omettre le deuxième paramètre. Dans ce cas, devrait retourner la fin de la chaîne à partir de l'index fourni.

+0

Salut, j'ai essayé ça avant mais le script break. Essayé encore et cela fonctionne donc doit avoir été quelque chose d'autre var linkID = link.substring (link.indexOf ("=") + 1) l'a fait. – Peter

+0

oui, juste attendre 10 minutes avant que je puisse accepter ... – Peter

+0

Oh, vraiment? Je ne le savais pas. :-) –

3

Il y a quelque temps, je l'avais écrit une fonction courte pour cela:

/** 
    * Gets the query parameters of the given URI as a associative array or map 
    * e.g. Given a URI http://www.level3labs.com/jaf?foo=bar&baz=bazzm, will 
    * give {"foo":"bar", "baz":"bazzm"} 
    * @param {URI} strUri The uri with a query 
    * @return Object containing query params or and empty object 
    */ 
    function getQueryParams(strUri) { 
    var paramMap = {}; 
    if(!!strUri) { 
     return paramMap; 
    } 

    var strQuery = strUri.substring(strUri.indexOf("?")); 
    if(strQuery && strQuery.indexOf("?") === 0 && strQuery.length > 1) { 
     strQuery = strQuery.substring(1); 
     var paramValArr = strQuery.split("&"); 
     for(var i = 0, len = paramValArr.length; i < len; i++) { 
      var paramVal = paramValArr[i]; 
      var delimIdx = paramVal.indexOf("="); 

      var param = null; 
      var val = null; 
      if(delimIdx >= 0) { 
       param = unescape(paramVal.substring(0, delimIdx)); 
       val = unescape(paramVal.substring(delimIdx + 1)); 
      }else { 
       param = unescape(paramVal); 
      } 
      paramMap[param] = val; 
     } 
    } 
    return paramMap; 
    } 
+0

+1 pour la réponse complète – Falle1234

0

Essayez plutôt

var link = ($(this).find('a').attr('href')); 
var qs = link.substring(link.indexOf("=")); 
0

Une autre façon pourrait être:

var qs = lien .split ("="). pop();

Questions connexes