fruit.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>fruit</title>
<link rel="stylesheet" href="css/fruitCss.css">
<script type="text/javascript" src="js/fruit.js"></script>
</head>
<body>
<div id="div_container">
<div id="div_fruit_list">
<table id="tbl_fruit">
<tr>
<th>名称</th>
<th>单价</th>
<th>数量</th>
<th>小计</th>
<th>操作</th>
</tr>
<tr>
<td>苹果</td>
<td>5</td>
<td>500</td>
<td>2500</td>
<td><img src="images/img.png" class="delImg"></td>
</tr>
<tr>
<td>方果</td>
<td>6</td>
<td>400</td>
<td>2400</td>
<td><img src="images/img.png" class="delImg"></td>
</tr>
<tr>
<td>圆果</td>
<td>7</td>
<td>300</td>
<td>2100</td>
<td><img src="images/img.png" class="delImg"></td>
</tr>
<tr>
<td>扁果</td>
<td>8</td>
<td>200</td>
<td>1600</td>
<td><img src="images/img.png" class="delImg"></td>
</tr>
<tr>
<td>总计</td>
<td colspan="4">8600</td>
</tr>
</table>
<br/><br/>
<hr/>
<div id="add_fruit_div">
<table id="tbl_add_fruit">
<tr>
<td>名称</td>
<td><input type="text" id="fname" value="u"/></td>
</tr>
<tr>
<td>单价</td>
<td><input type="text" id="price" value="2"/></td>
</tr>
<tr>
<td>数量</td>
<td><input type="text" id="fcount" value="3"/></td>
<tr>
<th colspan="2">
<input type="button" id="add_btn" class="btn" value="添加"/>
<input type="button" class="btn" value="重置"/>
</th>
</tr>
</table>
</div>
</div>
</div>
</body>
</html>
fruit.js
window.onload=function (){
var fruitTbl=document.getElementById("tbl_fruit");
var rows=fruitTbl.rows;
for (var i=1;i<rows.length;i++){
var tr=rows[i];
trBindEvent(tr);
}
document.getElementById("add_btn").onclick=addFruit;
}
function trBindEvent(tr){
tr.onmouseover=showBgColor;
tr.onmouseout=clearBgColor;
var cells=tr.cells;
var priceTD=cells[1];
priceTD.onmouseover=showHand;
priceTD.onclick=editPrice;
var img=cells[4].firstChild;
if (img&&img.tagName=="IMG"){
img.onclick=delFruit;
}
}
function showBgColor(){
if (event&&event.srcElement&&event.srcElement.tagName=="TD"){
var td=event.srcElement;
var tr=td.parentElement;
tr.style.backgroundColor="deepskyblue";
var tds=tr.cells;
for (var i=0;i<tds.length;i++){
tds[i].style.color="white";
}
}
}
function clearBgColor(){
if (event&&event.srcElement&&event.srcElement.tagName=="TD"){
var td=event.srcElement;
var tr=td.parentElement;
tr.style.backgroundColor="transparent";
var tds=tr.cells;
for (var i=0;i<tds.length;i++){
tds[i].style.color="slategrey";
}
}
}
function showHand(){
if (event&&event.srcElement&&event.srcElement.tagName=="TD") {
var td=event.srcElement;
td.style.cursor="hand";
}
}
function editPrice(){
if (event&&event.srcElement&&event.srcElement.tagName=="TD") {
var priceTD=event.srcElement;
if (priceTD.firstChild&&priceTD.firstChild.nodeType==3){
var oldPrice=priceTD.innerText;
priceTD.innerHTML="<input type='text' size='4'/>";
var input=priceTD.firstChild;
if (input.tagName=="INPUT"){
input.value=oldPrice;
input.select();
input.onblur=updatePrice;
input.onkeydown=checkInput;
}
}
}
}
function updatePrice(){
if (event&&event.srcElement&&event.srcElement.tagName=="INPUT"){
var input=event.srcElement;
var newPrice=input.value;
var priceTD=input.parentElement;
priceTD.innerText=newPrice;
updateXJ(priceTD.parentElement);
}
}
function updateXJ(tr){
if (tr&&tr.tagName=="TR"){
var tds=tr.cells;
var price=tds[1].innerText;
var count=tds[2].innerText;
var xj=parseInt(price)*parseInt(count);
tds[3].innerText=xj;
updateZJ();
}
}
function updateZJ(){
var fruitTbl=document.getElementById("tbl_fruit");
var rows=fruitTbl.rows;
var sum=0;
for (var i=1;i<rows.length-1;i++){
var tr=rows[i];
var xj=parseInt(tr.cells[3].innerText);
sum=sum+xj;
}
rows[rows.length-1].cells[1].innerText=sum;
}
function delFruit() {
if (event && event.srcElement && event.srcElement.tagName == "IMG") {
if (window.confirm("是否删除当前库存记录")){
var img=event.srcElement;
var tr=img.parentElement.parentElement;
var fruitTbl=document.getElementById("tbl_fruit");
fruitTbl.deleteRow(tr.rowIndex);
updateZJ();
}
}
}
function checkInput(){
var kc=event.keyCode;
if (!(kc>=49&&kc<=57||kc==8||kc==13)){
event.returnValue=false;
}
if (kc==13){
event.srcElement.blur();
}
}
function addFruit(){
var fname=document.getElementById("fname").value;
var price=parseInt(document.getElementById("price").value);
var fcount=parseInt(document.getElementById("fcount").value);
var xj=price*fcount;
var fruitTbl=document.getElementById("tbl_fruit");
var tr=fruitTbl.insertRow(fruitTbl.rows.length-1);
var fnameTD=tr.insertCell();
fnameTD.innerText=fname;
var priceTD=tr.insertCell();
priceTD.innerText=price;
var fcountTD=tr.insertCell();
fcountTD.innerText=fcount;
var xjTD=tr.insertCell();
xjTD.innerText=xj;
var imgTD=tr.insertCell();
imgTD.innerHTML="<img src='images/img.png' class='delImg'/>";
updateZJ();
trBindEvent(tr);
}
fruitCss.css
body{
margin: 0;
padding: 0;
background-color: antiquewhite;
}
div{
position: relative;
float: left;
}
#div_container{
width: 80%;
height: 900px;
border: 1px solid deepskyblue;
margin-left: 10%;
float: left;
background-color: honeydew;
border-radius: 5px;
}
#div_fruit_list{
width: 100%;
border: 0px solid black;
}
#tbl_fruit{
width: 60%;
line-height: 30px;
margin-top: 120px;
margin-left: 20%;
}
#tbl_fruit,#tbl_fruit tr,#tbl_fruit th,#tbl_fruit td{
border: 1px solid lightblue;
border-collapse: collapse;
text-align: center;
font-size: 16px;
font-family: 宋体;
color: slategrey;
}
.delImg{
width: 24px;
height: 24px;
}
.btn{
border:1px solid lightblue;
font-family: 宋体;
color: chartreuse;
font-weight: bolder;
border-radius: 5px;
}
#add_fruit_div{
width: 60%;
height: 0%;
border: 0px solid deepskyblue;
margin-left: 20%;
float: left;
background-color: honeydew;
border-radius: 5px;
}
#tbl_add_fruit{
width: 40%;
line-height: 30px;
margin-top: 40px;
margin-left: 30%;
}
#tbl_add_fruit,#tbl_add_fruit tr,#tbl_add_fruit th,#tbl_add_fruit td{
border: 0px solid lightblue;
border-collapse: collapse;
text-align: center;
font-size: 16px;
font-family: 宋体;
color: slategrey;
}