2015-05-27 13 views
6

Tôi cần lấy id từ url. Vì vậy, nếu url giống như vậy: http://localhost:17241/Chart.aspx?id=11Lấy một số ra khỏi url

Tôi sẽ lấy số 11 làm đầu ra. Nhưng có một id khác nhau trên mọi trang web. Và sau đó tôi sẽ thiết lập chỉ số z với điều đó.

Tôi đã cố gắng để viết một cái gì đó

$.urlParam = function (name) { 
var patt1 = new RegExp('[^17241]').exec(window.location.href); 
return result[1] || 0; 
document.getElementById("link").innerHTML = result;} 

Nhưng điều này không làm việc ở tất cả. Có ai biết phải làm gì không?

Vì vậy, bây giờ nó nên thay đổi z-index:

var url = window.location.href; 
var params = url.split('?'); 
var id = params[1].split('=')[1]; //params[1] will contain everything after ? 
console.log(id); 
if(id == 11) 
{ 
    $(“#one”).each(function() { 
     $(this).css(“z-index“, 0); 
    }); 

} 

else if(id == 31) 
{ 
    $(“#four”).each(function() { 
     $(this).css(“z-index“, 0); 
    }); 
} 

Và nó nên thay đổi z-index của divs

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="Server"> 
<div class="contentwidth" id="chartdiv"> 
    <asp:Label ID="lblStatus" runat="server"></asp:Label> 
    <div id="one" style="position: absolute; top: 0; left: 0; height: 100%; width: 100%;"> 
     <asp:Literal ID="ltrRenderChart" runat="server"></asp:Literal> 
    </div> 
    <div id="two" style="position: absolute; top: 0; left: 50%; height: 100%; width: 100%; z-index:-1"> 
     <asp:Literal ID="ltrRenderChart2" runat="server"></asp:Literal> 
    </div> 
    <div id="three" style="position: absolute; top: 50%; left: 0; height: 100%; width: 100%; z-index:-1"> 
     <asp:Literal ID="ltrRenderChart3" runat="server"></asp:Literal> 
    </div> 
    <div id="four" style="position: absolute; top: 50%; left: 50%; height: 100%; width: 100%; z-index:-1 "> 
     <asp:Literal ID="ltrRenderChart4" runat="server"></asp:Literal> 
    </div> 
</div> 

Cảm ơn

+2

http: // stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript –

+0

@AnoopJoshi Sẽ không hoạt động nếu có nhiều thông số – Tushar

+0

Vì vậy, bạn sẽ làm gì để lấy id của ? https: //jsfiddle.net/wz6bkdn2/1/ –

Trả lời

1

Bạn có thể sử dụng regex:

alert(window.location.href.match(/\?id=(\d+)/i)[1]); 
  1. \?: Khớp ?. cần phải thoát khỏi bởi \
  2. id=: Trận chuỗi chính xác id=
  3. \d+: Trận nào không. của các chữ số
  4. (): Nhóm.
  5. i: Trường hợp trận đấu Insensitive
+0

Nhưng làm thế nào để tôi làm điều đó khi url sẽ được đọc từ trên cao? –

+0

@fusionchart_help Bạn có thể sử dụng 'window.location.href'. Kiểm tra câu trả lời cập nhật – Tushar

3

Bạn có thể tận dụng split()

var url = 'http://localhost:17241/Chart.aspx?id=11' 
var params = url.split('?'); 
var id=params[1].split('=')[1]; //params[1] will contain everything after ? 
console.log(id); 

EDIT

Để có được url bên trong var url thay thế dòng đầu tiên với

var url = window.location.href; 
+0

Và làm thế nào để tôi nhận được url bên trong url biến? –

+0

@fusionchart_help. Xem bản cập nhật. – Zee

1

Nếu bạn muốn nó như một con số thực tế tôi sẽ viết một phiên bản generic

function getParamAsNumber(url, param) { 
    param = param + '='; 
    if (url.indexOf(param) !== -1) { 
     return parseInt(url.substr(url.indexOf(param) + param.length)); 
    } 
} 

Nó chuyển đổi để nguyên chuỗi sau param + '=' (trong trường hợp của bạn 'id =')

Vì vậy, bạn có thể làm

getParamAsNumber(window.location.href, 'id'); 
3

Nó được gọi là chuỗi truy vấn

đây là chức năng,

function getParameterByName(name) { 
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); 
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), 
    results = regex.exec(location.search); 
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); 
} 

và làm thế nào bạn gọi

getParameterByName(name) 

Trên code đang từ đây How can I get query string values in JavaScript?

1

Tôi đang sử dụng phương pháp này để lấy bất cứ tham số từ URL của cửa sổ hiện hành:

function obtainParameter(key) { 
    var result=null, tmp; 
    window.location.search //this attribute stores the string found after a ‘?’ in the URL, including the question mark. 
     .substr(1) //removing question mark in position 0 
     .split("&") //obtaining the pairs key=value 
     .forEach(function (item) { 
      tmp = item.split("="); // tmp[0] is the parameter name, tmp[1] is the value 
      if (tmp[0] === key) result = decodeURIComponent(tmp[1]); 
     }); 
    return result; 
} 

Có nó, bạn chỉ cần viết:

var id=obtainParameter('id'); 
1
var url = "http://localhost:17241/Chart.aspx?id=11"; 

url = url.split("=")[1]; 
1
var url = 'http://localhost:17241/Chart.aspx?id=11'; 
var match = url.match(/id=(\d+)/) 
if (match) { 
    var id = match[1]; 
} 
+0

Nhưng làm thế nào để tôi nhận được url bên trong biến var? –

+0

Đã @Zee đã giải thích. – peszo

1

Bạn có thể sử dụng chức năng chia: string.split(separator,limit)

var str = "http://localhost:17241/Chart.aspx?id=11"; 
var res = str.split("=", 2); 
document.getElementById("link").innerHTML = res[1]; 
1

Bạn không cần Regex cho nhiệm vụ nhỏ này. Bạn có thể sử dụng chức năng bên dưới để nhận các yêu cầu của mình:

function getvalue(murl,para) 
{ 
    try 
    { 
     return (murl.split(para+"=")[1]).split("&")[0]; 
    } 
catch(e) 
    { 
     return ''; 
    } 
} 
var murl = 'http://localhost:17241/Chart.aspx?id=11'; 
var id = getvalue(murl,'id'); 

Nó sẽ không trả lại bất cứ điều gì khi không tìm thấy tham số GET.

Trong trường hợp của bạn:

var id = getvalue(window.location.href,'id'); 
1

Bạn có thể sử dụng chức năng này để nhận các thông số chuỗi truy vấn với JS:

function getQueryVariable(variable) { 
    var query = window.location.search.substring(1); 
    var vars = query.split('&'); 
    for(var i=0; i<vars.length; i++) { 
    var pair = vars[i].split('='); 
    if(pair[0] == variable) { 
     return pair[1]; 
    }; 
    }: 
    return(false); 
}; 

Sau đó, bạn có thể nhận được giá trị của id như thế này:

var yourID = getQueryVariable('id'); 
Các vấn đề liên quan