[英]What does javascript document.createElement('bootstrap') do? There's no such DOM element type as 'bootstrap'!
[英]what does document.createElement('a') do in this code?
我找到了一些代碼來從URL中以?a=1&b=2
的形式獲取參數,但是有些部分我不理解。
我可以在某種程度上算出最后一部分-他在“&”上分割字符串,然后在“ =”符號的任一側提取出部分。 我不太了解encodeURIComponent函數,我查了一下仍然很困惑。 但是,主要問題是以下三行:
var parser = document.createElement('a');
parser.href = window.location.href;
var query = parser.search.substring(1);
如何使不存在的元素起作用,為什么他可以進行parser.href
以及為什么parser.search.substring(1)
?
完整代碼:
function get_params() {
var params = {};
var parser = document.createElement('a');
parser.href = window.location.href;
var query = parser.search.substring(1);
var vars = query.split('&');
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split('=');
params[pair[0]] = decodeURIComponent(pair[1]);
}
}
它創建一個<a>
元素,其href
屬性等於當前URL。 然后,查詢此元素以獲取GET查詢字符串。
但是,以下3行:
var parser = document.createElement('a');
parser.href = window.location.href;
var query = parser.search.substring(1);
可以替換為:
var query = window.location.search.substring(1);
var parser = document.createElement('a');
parser.href = window.location.href;
上面的代碼創建一個html <a>
標記,並在瀏覽器窗口中創建一個指向當前頁面的鏈接。
使用parser.search
不起作用。 不知道那里發生了什么,或者為什么他們制作一個<a>
元素只是為了在其上添加href。 這里有一些類似的東西會起作用:
function get_params() {
var params = {};
var href = window.location.href;
href = href.substring(href.lastIndexOf("?"), href.length)
var vars = href.split('&');
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split('=');
params[pair[0]] = decodeURIComponent(pair[1]);
}
}
至於decodeURIComponent
,URL編碼了一些字符以進行傳輸。 例如,空格由%20
表示。 此函數將其解碼回常規字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.