溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript中的Location.search怎么使用

發(fā)布時間:2023-04-27 10:30:34 來源:億速云 閱讀:177 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“JavaScript中的Location.search怎么使用”,在日常操作中,相信很多人在JavaScript中的Location.search怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”JavaScript中的Location.search怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

Location.search數(shù)據(jù)來源
假設(shè)1.html中有一個表單,其action屬性為2.html,則在該表單提交后跳轉(zhuǎn)至2.html進行后續(xù)處理

Loction.search數(shù)據(jù)格式
location.search的數(shù)據(jù)格式是這樣的:?key1=key_value1&key2=key_value2&key3=key_value3&......&keyn=key_valuen
由?開頭,接著是key=key_value這種鍵值對的存在形式,每個鍵值對用&隔開

Loction.search的初步處理
用到以下幾個函數(shù):substr() split()
首先用substr()處理掉最前面的?:var first_deal=location.serach.substr(1);這樣就去掉了最前面的?
然后再通過split(),利用鍵值對之間使用’&'隔開的特點將鍵值對分開放入字符串數(shù)組當中var second_deal=first_deal.split('&');

最后整合成一個精簡的句子:var search=location.search.substr(1).split('&');,這可以去掉?并將鍵值對分開

Location.search處理結(jié)果的存儲方式
從C語言數(shù)據(jù)結(jié)構(gòu)學習中汲取到了靈感:順序存儲線性表—我構(gòu)建了一個對象,由兩個數(shù)組和一個數(shù)字常量構(gòu)成

function key_value_obj() {
        this.key = [];
        this.keyvalue = [];
        this.counter = 0;
    }

第一個數(shù)組當中存放key,第二個數(shù)組用于存放key_value,而counter當中則是存放鍵值對的數(shù)量,起到一個計數(shù)器的作用

再接著是給這個對象中的數(shù)組賦值的操作

賦值操作無非如下:

 function deal_with_key_value(obj, key_and_value) {
            for (var i = 0; i < key_and_value.length; i++) {
                var pos = key_and_value[i].split('=');
                obj.key[i] = pos[0];
                obj.keyvalue[i] = pos[1];
                obj.counter++;
            }

循環(huán)體:用for循環(huán)遍歷,這里提一嘴的原因是,建議不要使用for-in循環(huán),可能會導致不可預料的錯誤
第一步是定義一個臨時變量來存儲鍵和值的數(shù)組,通過spilt函數(shù)來分開,分別放在pos[0]和pos[1]當中
第二步就是分別將這些值放置在對象的數(shù)組當中
第三步,計數(shù)器++,完成記錄數(shù)組內(nèi)部數(shù)據(jù)個數(shù)整合

    function deal_with_locationsearch() {
        var search = location.search.substr(1).split('&'); //初步處理數(shù)據(jù)-->去掉?分開多個鍵值對

        function key_value_obj() {
            this.key = []; //鍵數(shù)組
            this.keyvalue = []; //值數(shù)組
            this.counter = 0; //計數(shù)器,用于存儲數(shù)據(jù)數(shù)量
        } //數(shù)據(jù)存儲方式-->順序存儲,線性表
        var obj = new key_value_obj();
        //創(chuàng)建對象

        function deal_with_key_value(obj, key_and_value) {
            for (var i = 0; i < key_and_value.length; i++) {
                var pos = key_and_value[i].split('=');
                obj.key[i] = pos[0];
                obj.keyvalue[i] = pos[1];
                obj.counter++;
            } //遍歷location.search中每一個元素
        }
        deal_with_key_value(obj, search); //調(diào)用

        return obj; //最終返回值為對象
    }


    var obj = deal_with_locationsearch();

//使用效果

    var c = '';
    for (i = 0; i < obj.counter; i++) {
        var d = obj.key[i] + '=' + obj.keyvalue[i];
        c += d;
}
console.log(c);
```

到此,關(guān)于“JavaScript中的Location.search怎么使用”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI