2012-04-04 3 views
1

Имея эту ссылку, как я могу получить только? Ref = "ЭТО" часть ?? Потому что я хочу выбрать только эту часть ссылки с jQuery, а затем использовать ее как переменную. Возможно ли это? Я хочу сделать это, когда загружаю страницу. Итак:Используйте часть ссылки как переменную

JavaScript:

$(document).ready(function() 
    GET the variable (var variable = ref="THIS";) 

    if(cookie != null){ 
    $("#"+variable).show().$.cookie("actual" , variable); 

}); 

Html:

<a href="products.php?ref=oscilobatiente&tipo=7001ad></a> 

ответ

2

Смотрите эту fiddle

Edit: я настроил это так работает с объектами в настоящее время, благодаря некоторым хорошие комментарии по Thiefmaster

JS

$(function() { 
    var url = $("a").attr("href"); 
    var index = url.indexOf('?'); 
    var vars = url.substring(index + 1, url.length).split('&'); 
    var params = {} ; 
    for(var i = 0; i < vars.length; i ++) 
    { 
     var param = vars[i].split('='); 

     params[param[0]] = param[1]; 

    } 
    alert(params.ref); 
});​ 
+1

'[]' предпочтительный способ создания массива (вместо 'нового массива() '). Однако вам не нужен массив в этом случае, но объект ('var params = {};'), поскольку вы используете именованные поля. Если вам интересно, почему ваш код работает в любом случае: «Array» также является объектом, поэтому он может иметь свойства. Однако они не будут учитываться для '.length'. – ThiefMaster

+0

@ThiefMaster нормально, но кроме этого это работает. – Frederiek

+0

Да, предположим так;) Upvote входящий, когда вы его изменили – ThiefMaster

2

ИТАК давая тег идентификатор MyLink, вы могли бы сделать (заметим, что + 4 по индексу так, что он не включает в себя "реф =":

var myLinkHref = $("#myLink").attr("href"); 
var ref = myLinkHref.substring(myLinkHref.indexOf("ref=") + 4); 
Смежные вопросы