亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Operasi DOM yang berkaitan untuk membangunkan troli beli-belah dengan JavaScript (3)

Bahagian ini terutamanya merangkumi pelbagai operasi dalam troli beli-belah, seperti mengira bilangan produk, mengemas kini dan mendapatkan data tempatan, dsb., untuk memudahkan pengurusan kod.

Pertama, semak sama ada data tempatan mengandungi objek (komoditi) yang ditentukan berdasarkan ID

Kedua, kemas kini data tempatan melalui objek tatasusunan dan dapatkan jumlah kuantiti produk

Akhir sekali, kemas kini data setempat mengikut pengenalan produk, dan kemudian dapatkan data setempat.

<script>
 /*
 功能:查看本地?cái)?shù)據(jù)中是否含有指定的對(duì)象(商品),根據(jù)id
 參數(shù):id:商品的標(biāo)識(shí)
 */
function checkObjByPid(id) {
    var jsonStr = cookieObj.get("datas");
    var jsonObj = JSON.parse(jsonStr);
    //parse() 方法可解析一個(gè)日期時(shí)間字符串,并返回 1970/1/1 午夜距離該日期時(shí)間的毫秒數(shù)。
    var isExist = false;
    for(var i = 0, len = jsonObj.length; i < len; i++) {
        if(jsonObj[i].pid == id) {
            isExist = true;
            break;
        }
    }
    return isExist; //return false;
}

/*
 功能:更新本地?cái)?shù)據(jù)
 參數(shù):arr    數(shù)組對(duì)象
 返回一個(gè)值:最新的本地轉(zhuǎn)換后的數(shù)組對(duì)象
 * */
function updateData(arr) {
    var jsonStr = JSON.stringify(arr);
    cookieObj.set({
        name: "datas",
        value: jsonStr
    });
    jsonStr = cookieObj.get("datas");
    return JSON.parse(jsonStr);
}

/*
 獲取商品的總數(shù)量
 返回:數(shù)字
 */
function getTotalCount() {
    /*循環(huán)遍歷數(shù)組,獲取每一個(gè)對(duì)象中的pCount值相加總和*/
    var totalCount = 0; //默認(rèn)為0
    var jsonStr = cookieObj.get("datas");
    var listObj = JSON.parse(jsonStr);
    for(var i = 0, len = listObj.length; i < len; i++) {
        totalCount = listObj[i].pCount + totalCount;
    }
    return totalCount;
}

/*
 更新本地?cái)?shù)據(jù)根據(jù)pid
 id:商品的標(biāo)識(shí)
 */
function updateObjById(id, num) {
    var jsonStr = cookieObj.get("datas");
    var listObj = JSON.parse(jsonStr);
    for(var i = 0, len = listObj.length; i < len; i++) {
        if(listObj[i].pid == id) {
            listObj[i].pCount = listObj[i].pCount + num;
            break;
        }
    }
    return updateData(listObj)
}

/*
 獲取本地?cái)?shù)據(jù)
 返回 數(shù)組對(duì)象
 * */
function getAllData() {
    var jsonStr = cookieObj.get("datas");
    var listObj = JSON.parse(jsonStr);
    return listObj;
}

function deleteObjByPid(id) {
    var lisObj = getAllData();
    for(var i = 0, len = lisObj.length; i < len; i++) {
        if(lisObj[i].pid == id) {
            lisObj.splice(i, 1); //splice() 方法向/從數(shù)組中添加/刪除項(xiàng)目,然后返回被刪除的項(xiàng)目。
            break;
        }
    }
    updateData(lisObj);
    return lisObj;
}
</script>

Anotasi:

JSON.stringify

Menukar nilai JavaScript kepada rentetan Notasi Objek JavaScript (Json).

Sintaks: JSON.stringify(value [, replacer] [, space])

value: ialah medan yang diperlukan. Ia adalah objek yang anda masukkan, seperti tatasusunan, kelas, dll. pengganti: Ini adalah pilihan. Ia terbahagi kepada 2 kaedah, satu tatasusunan, dan kedua kaedah.

Kes 1: Apabila pengganti ialah tatasusunan, kita boleh mengetahui melalui percubaan berikutnya bahawa ia berkaitan dengan nilai parameter pertama. Secara umumnya, hasil bersiri diwakili oleh pasangan nilai kunci. Oleh itu, jika nilai parameter kedua wujud pada yang pertama pada masa ini, maka nilai parameter kedua digunakan sebagai kunci, dan nilai parameter pertama diwakili oleh nilai Jika ia tidak wujud, ia tidak diendahkan.

Kes 2: Apabila pengganti ialah kaedah, ia sangat mudah, iaitu, menghantar setiap objek bersiri (ingat setiap satu) ke dalam kaedah untuk pemprosesan.

ruang: Apa yang digunakan sebagai pemisah.

 1) Jika ditinggalkan, nilai yang dipaparkan tidak akan mempunyai pemisah dan akan dikeluarkan secara langsung.
2) Jika ia adalah nombor, maka ia mentakrifkan berapa banyak aksara untuk inden Sudah tentu, jika ia lebih daripada 10, lalai ialah 10, kerana nilai maksimum ialah 10.
3) Jika ia adalah beberapa watak melarikan diri, seperti "t", yang bermaksud pemulangan gerabak, maka ia akan mempunyai satu pemulangan gerabak setiap baris.
 4) Jika ia hanyalah rentetan, tambahkan rentetan ini pada setiap baris apabila mengeluarkan nilai. Sudah tentu, panjang maksimum juga 10 aksara.


Buat fail server.js dan masukkan kod JavaScript di atas ke dalamnya.

<script type="text/javascript" src="server.js"></script>

akan dipanggil dari halaman HTML kemudian untuk mencapai kesan modul fungsi.

Meneruskan pembelajaran
||
<script> /* 功能:查看本地?cái)?shù)據(jù)中是否含有指定的對(duì)象(商品),根據(jù)id 參數(shù):id:商品的標(biāo)識(shí) */ function checkObjByPid(id) { var jsonStr = cookieObj.get("datas"); var jsonObj = JSON.parse(jsonStr); //parse() 方法可解析一個(gè)日期時(shí)間字符串,并返回 1970/1/1 午夜距離該日期時(shí)間的毫秒數(shù)。 var isExist = false; for(var i = 0, len = jsonObj.length; i < len; i++) { if(jsonObj[i].pid == id) { isExist = true; break; } } return isExist; //return false; } /* 功能:更新本地?cái)?shù)據(jù) 參數(shù):arr 數(shù)組對(duì)象 返回一個(gè)值:最新的本地轉(zhuǎn)換后的數(shù)組對(duì)象 * */ function updateData(arr) { var jsonStr = JSON.stringify(arr); cookieObj.set({ name: "datas", value: jsonStr }); jsonStr = cookieObj.get("datas"); return JSON.parse(jsonStr); } /* 獲取商品的總數(shù)量 返回:數(shù)字 */ function getTotalCount() { /*循環(huán)遍歷數(shù)組,獲取每一個(gè)對(duì)象中的pCount值相加總和*/ var totalCount = 0; //默認(rèn)為0 var jsonStr = cookieObj.get("datas"); var listObj = JSON.parse(jsonStr); for(var i = 0, len = listObj.length; i < len; i++) { totalCount = listObj[i].pCount + totalCount; } return totalCount; } /* 更新本地?cái)?shù)據(jù)根據(jù)pid id:商品的標(biāo)識(shí) */ function updateObjById(id, num) { var jsonStr = cookieObj.get("datas"); var listObj = JSON.parse(jsonStr); for(var i = 0, len = listObj.length; i < len; i++) { if(listObj[i].pid == id) { listObj[i].pCount = listObj[i].pCount + num; break; } } return updateData(listObj) } /* 獲取本地?cái)?shù)據(jù) 返回 數(shù)組對(duì)象 * */ function getAllData() { var jsonStr = cookieObj.get("datas"); var listObj = JSON.parse(jsonStr); return listObj; } function deleteObjByPid(id) { var lisObj = getAllData(); for(var i = 0, len = lisObj.length; i < len; i++) { if(lisObj[i].pid == id) { lisObj.splice(i, 1); //splice() 方法向/從數(shù)組中添加/刪除項(xiàng)目,然后返回被刪除的項(xiàng)目。 break; } } updateData(lisObj); return lisObj; } </script>