2010-12-28 11 views
15

Disculpe por otra pregunta "simple", pero ¿hay alguna manera fácil de leer las variables GET de una URL? ejemplo. Tengo una url http://www.domain.com/page.php?var1=1 En mi caso, solo tendré 1 variable, es decir, var1 o var2 (la variable puede cambiar pero solo habrá una por url). Todos los tuts que he visto se relacionan con matrices en lugar de "singletons". Sé que una solución de matriz puede ser mejor, pero esta es solo una simple variable de obtención. ¿Alguna sugerencia? Gracias de antemanolea las variables GET en url JQuery

+3

posible duplicado de [Obtener valores de cadena de consulta con jQuery] (http://stackoverflow.com/questions/901115/get-querystring-values-with-jquery) – Oded

+0

@Oded> insuficiente de jQuery: P – naveen

Respuesta

39
var split = location.search.replace('?', '').split('=') 

split[0] es su nombre var y split[1] es su valor var. Que en realidad no necesita realmente jQuery para esa pieza de código;)

En cuanto a la observación del Twiz, la división de múltiples variables se puede hacer así:

var split = location.search.replace('?', '').split('&').map(function(val){ 
    return val.split('='); 
}); 

Se puede acceder a nombre de la variable por split[index][0] y el valor de split[index][1].

Por supuesto, también puede usar el segundo fragmento en lugar del primero para una variable.

+0

perfecta gracias - lo aceptaré en 4 minutos (no puedo!) –

+3

¿No necesitarías dividir entre 'y' también para múltiples variables? – twiz

+0

@twiz actualizó la respuesta – usoban

3

Utilizo esto en mi archivo javascript predeterminado.

var get = []; 
location.search.replace('?', '').split('&').forEach(function (val) { 
    split = val.split("=", 2); 
    get[split[0]] = split[1]; 
}); 

Ahora se puede utilizar por su nombre:

get["var1"] 
0

Se puede utilizar esta función que devuelve el valor del nombre var url especificada de si existe la var. De lo contrario, obtendrás una cadena vacía.

function getUrlValue(varName) { 
    var split = $(location).attr('href').split('?'); 
    var value = ''; 
    if (split.length == 2) { 
     split = split[1].split('&'); 
     for (var i = 0; i < split.length; i+=1) { 
      var keyValue = split[i].split('='); 
      if (keyValue.length == 2 && keyValue[0] == varName) { 
       value = keyValue[1]; 
       break; 
      } 
     } 
    } 
    return value; 
}