JavaScript(購物Demo)
JavaScript是嵌入HTML中在瀏覽器中的指令碼語言,具有與java和C語言類似的語法
- 一種網頁程式設計技術,用來向HTML頁面新增互動式行為
- 直接嵌入HTML頁面
- 由瀏覽器解釋執行程式碼,不進行預編譯
資料型別轉換函式
- toString:所有資料型別均可轉換為String型別;
- parseInt:強制轉換成整數,如果不能轉換,則返回NaN(not a number);
- parseFloat:強制轉換成浮點型,如果不能轉換,則返回NaN;
- typeof:查詢當前型別,返回string/number/boolean/object/function/undefine 例如:typeof("test"+3),返回“string”;
- isNaN(is not a number?),判斷被檢測表示式經過轉換後是不是一個數,如果被檢測表示式不是數則返回true,否則返回false;
- null:null在程式中代表“無值”或者“無物件”,可以通過給一個變數賦值null來清除變數的內容;
- undefined:宣告瞭變數但從未賦值,物件屬性不存在;
document物件
innerText:設定或獲取位於物件起始和結束標籤內的文字;
innerHTML:設定或獲取位於物件起始和結束標籤內的HTML;
節點屬性
- getAttribute():方法:根據屬性名稱獲取屬性;
- setAttribute()
- removeAttribute()
查詢節點
如果需要操作HTML元素,必須首先找到該元素
查詢節點的方式:
- 通過id查詢 document.getElementById("idname") 通過制定的ID來返回元素節點,忽略文件的結構;查詢整個HTML文件中的任何HTML元素;如果ID錯誤,則返回null。
- 通過層次(節點關係)查詢 parentNode---遵循文件的上下層次結構,查詢單個父節點 childNodes---遵循文件的上下層次結構,查詢多個子節點
- 通過標籤名稱查詢 getElementsByTagName()---根據指定的標籤名稱返回所有的元素;忽略文件結構;查詢整個HTML文件中的所有元素;如果標籤從、名稱錯誤,則返回長度為0的節點列表。返回一個節點列表(陣列):使用節點類表的length屬性獲取個數;[index]:定位具體的元素
- 通過name屬性查詢 document.getElementsByName()
建立新節點
- documen.createElement(elementname) elementname:要建立元素標籤名稱;返回新建立的節點
新增新節點
- parentNode.appendChild(newNode) 追加:新節點作為父節點的最後一個子節點新增
- parentNode.insertBefore(newNode,refNode) refNode:參考節點,新節點位於此節點之前新增
刪除節點
node.removeChild(childNode)
刪除某子節點;childNode必須是node的子節點。
自定義物件
- 自定義物件是一種特殊的資料型別,由屬性和方法封裝而成 ----屬性指與物件有關的值:物件名.屬性 ----方法指物件可以執行的行為或可以完全的功能:物件名.方法名()
- 建立自定義物件 ---直接建立物件 ---使用構造器建立物件 ---使用JSON建立物件
JSON是一種輕量級的資料交換格式
- 使用名/值對的方式定義
- 名稱需要使用“”引起來
- 多對定義之間使用,隔開
- 名稱可以是屬性
- 字串型別的屬性值,需要使用“”引起來
事件屬性
- 滑鼠事件:onclick,ondblclick,onmousedown,onmouseup,onmouseover,onmouseout
- 鍵盤事件:onkeydown,onkeyup
- 狀態事件:onload,onchange,onfource,onblur,onsubmit
event物件
- 任何事件觸發後將會產生一個event物件
- event物件記錄事件發生的滑鼠位置、鍵盤按鍵狀態和觸發物件等資訊 ---獲得event物件 ---使用event物件或的相關資訊,如單擊位置,觸發物件等
- 常用屬相:clientX/clientY/cancelBubble等
- 對於event物件,經常需要獲得事件源(通常要考慮瀏覽器相容問題)
- IE瀏覽器:event.srcElement
- Firefox瀏覽器:event.target
string物件
- 大小寫轉換方法 ---x.toLowerCase() --x.toUpperCase()
- 獲取指定字元:
- x.charAt(index):返回指定位置的字元
- x.charCodeAt(index):返回指定位置字元的Unicode編碼
- index:字元位置
- 查詢指定字串:
- x.indexOf(findstr,[index])
- x.lastIndexOf(findstr,[index])
- findstr:查詢的字串
- index:開始查詢的位置索引,可以省略
- 返回find石頭人在X中出現的首字元位置索引,如果沒有找到,則返回-1
- lastIndexOf:從後面找起
- 獲取子字串:
- x.substring(start,[end])
- 替換子字串:
- x.replace(findstr,tostr)
- 查分子字串:
- x.split(bystr,[howmany])
number物件
- toFixed(num):轉換為字串,並並保留小數點後一定位數
array物件
- 建立陣列物件
- var a1 =new Array();
- 獲取陣列元素的個數:length屬性
- 訪問數a1[1];
- x.reverse();---反向陣列---改變陣列x中數值的順序
- x.sort([sortfunc]):陣列排序
date物件
讀取時間毫秒數:getTime(),setTime()
讀寫時間分量--getDate(),getDay(),getFullYear()
--------------------setDate(),setDay(),setFullYear()
轉換為字串
--toString()
--toLocaleTimeString()
--toLocaleDateString()
展示基於JavaScript的一個小小的購物demo
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>購物</title>
<style type="text/css">
body{
background: #ccceee;
}
h1 {
text-align: center;
}
table {
width:60%;
margin: 100px auto;
border: 1px solid #ffffff;
border-collapse: collapse;
text-align: center;
}
table th ,table td {
border: 1px solid #ffffff;
padding: 5px;
}
input:hover {
background-color: yellow;
}
</style>
<script type="text/javascript">
function addshopping(btn) {
//獲取當前行的資訊
var tr = btn.parentNode.parentNode;
//獲取當前行下單元格里面的資訊
var tds = tr.getElementsByTagName("td");
//獲取商品名
var name = tds[0].innerHTML;
//獲取商品的價格
var price = tds[1].innerHTML;
//獲取購物車表格的tbody
var tbody = document.getElementById("goods");
//新增一行
var tr = tbody.insertRow();
tr.innerHTML='<td>'+name+'</td>'+
'<td>'+price+'</td>'+
'<td align="center">'+
'<input type="button" value="-" onclick="change(this,-1);">'+
'<input type="text" value="1" size="3" readonly>'+
'<input type="button" value="+" onclick="change(this,1);">'+
'</td>'+
'<td>'+price+'</td>'+
'<td align="center">'+
'<input type="button" value="X" onclick="del(this);">'+
'</td>';
total();
}
function del(btn) {
//自己不能刪除自己
//只有父節點才能刪除自己
var tr = btn.parentNode.parentNode;
tr.parentNode.removeChild(tr);
total();
}
function change(btn,n) {
var inputs = btn.parentNode.getElementsByTagName("input");
var count = parseFloat(inputs[1].value);
//當數量為1時不能點選減按鈕
if (count <= 1&& n <0) {
return;
}
inputs[1].value = count + n ;
count = inputs[1].value;
//獲取單價資訊
var tr = btn.parentNode.parentNode;
var tds = tr.getElementsByTagName("td");
var price = tds[1].innerHTML;
var sum = tds[2].innerHTML;
tds[3].innerHTML = parseFloat(price*count);
total();
}
function total() {
var tbody = document.getElementById("goods");
var trs = tbody.getElementsByTagName("tr");
var sum = 0;
for (var i = 0; i < trs.length; i++) {
var tds = trs[i].getElementsByTagName("td");
var td = tds[3].innerHTML;
sum +=parseFloat(td);
}
var total = document.getElementById("total");
total.innerHTML = sum;
}
</script>
</head>
<body>
<h1>聚划算</h1>
<table>
<thead>
<tr>
<th>商品名</th>
<th>商品價格</th>
<th>商品庫存</th>
<th>好評率</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td>龍瞎皮膚</td>
<td>888</td>
<td>100</td>
<td>50%</td>
<td>
<input type="button" value="加入購物車" onclick="addshopping(this);"/>
</td>
</tr>
<tr>
<td>寒冰源計劃皮膚</td>
<td>666</td>
<td>50</td>
<td>70%</td>
<td>
<input type="button" value="加入購物車" onclick="addshopping(this);"/>
</td>
</tr>
<tr>
<td>劫源計劃皮膚</td>
<td>555</td>
<td>30</td>
<td>60%</td>
<td>
<input type="button" value="加入購物車" onclick="addshopping(this);"/>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="5" style="text-align: center;color: red;">LOL皮膚選購</td>
</tr>
</tfoot>
</table>
<h1>購物車</h1>
<table>
<thead>
<tr>
<th>商品名</th>
<th>商品單價</th>
<th>商品數量</th>
<th>商品總價</th>
<th>操作</th>
</tr>
</thead>
<tbody id="goods">
</tbody>
<tfoot>
<tr>
<td colspan="3">總價:</td>
<td colspan="2" id="total"></td>
</tr>
</tfoot>
</table>
</body>
</html>
相關文章
- JavaScript 購物車自動計算價格JavaScript
- JavaScript商城購物車價格自動計算功能JavaScript
- 硬幣購物
- 淘物購物商城——原型設計原型
- 物聯網教程 demo1效果
- day83:luffy:新增購物車&導航欄購物車數字顯示&購物車頁面展示
- flutter 購物車功能Flutter
- 網上購物框架框架
- 購物車模組
- ATM+購物車
- 淘寶買家授權API系列:新增購物車商品、刪除購物車商品、獲取購物車商品列表API
- 購物系統專案
- 芒果圈購物網站網站
- python之購物車程式Python
- iOS高階-WebView & JavaScript互動(附DEMO)iOSWebViewJavaScript
- 購物童子軍:打造個性化購物推薦智慧體的全流程指南智慧體
- jQuery 加入購物車 彈窗jQuery
- 購物車的實現原理
- vue例項-購物車功能Vue
- 購物車原理以及實現
- Vue實現購物車效果Vue
- Snapchat收購以色列AR創企,進軍AR購物?
- 上海購物中心協會:上海購物中心2021/2022年度發展報告
- 萬達加速器第2期Demo-Day,觀遠資料詮釋購物中心智慧分析藍圖
- JavaScript模擬拋物效果JavaScript
- javascript 多物體運動JavaScript
- Redis 購物車 - 刪除商品與更新購買數量Redis
- 使用Vue做一個購物車Vue
- python-購物車程式練習Python
- 購物車(OK HTTP方法請求)HTTP
- VUE-書籍購物車案例Vue
- Android實現商城購物車功能Android
- 沃好窮 懶人購物 商城
- WordPress-WooCommerce購物商城主題
- Attest:購物體驗中的AIAI
- 模擬購物和信用卡
- 改版後前端購物車系統前端
- 【jquery】實現購物車加減jQuery