Event.js
阅读
2024-03-11更新
最新编辑:阿巴阿巴怪的很
阅读:
更新日期:2024-03-11
最新编辑:阿巴阿巴怪的很
var menu1 = document.getElementById('menu1').value; var menu2 = document.getElementById('menu2').value; var tableName=menu1.value+"_"+menu2.value; var Pt=document.getElementById(menu1 + '_' + menu2); alert(Pt); var materialList = { "鎏金铁块":0, "精工木件":0, "墙木榫":0}; //定义一个组成对应表,例如"精工木件"=5个"细沙"+5个"原木","墙木榫"=5个"原木","鎏金铁块"=5个"铁砂","麻绳"=5个"麻草"+10个"原木","线"=5个"鸢绒",要求包含数量和组成 var compose={"精工木件":{"细沙":5,"原木":5},"墙木榫":{"原木":5},"鎏金铁块":{"铁砂":5},"麻绳":{"麻草":5,"原木":10},"线":{"鸢绒":5}}; //定义一个元素列表,包含图纸·起居,图纸·置物,图纸·装饰,图纸·挂件,图纸·互动,图纸·墙纸,图纸·地板,虹石,鸢绒,原木,铁砂,细沙,麻草,赤珠草,仙草,书签 初始值设为0 //var elementList={"图纸·起居":0,"图纸·置物":0,"图纸·装饰":0,"图纸·挂件":0,"图纸·互动":0,"图纸·墙纸":0,"图纸·地板":0,"虹石":0,"鸢绒":0,"原木":0,"铁砂":0,"细沙":0,"麻草":0,"赤珠草":0,"仙草":0,"书签":0}; var elementList={"鸢绒":0,"原木":0,"铁砂":0,"细沙":0,"麻草":0}
var moneyCost = 0; for(i=1;i<Pt.getElementsByTagName("tr").length;i++){
//Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[0]添加一个check box Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[0].innerHTML = '<input type="checkbox">'; //Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[5]添加一个textbox,后续可以改成加减框? Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[5].innerHTML = '<input type="number" value="0" min="0" max="9999">';
} function costSum()//求和函数,计算选中的所有材料的合集 {
for(i=1;i<Pt.getElementsByTagName("tr").length;i++){//遍历表格 if(eval(Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[0])==true)//选了才计算 { //写一个函数遍历Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[3]分解具体材料并*数量Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[4]累加到 materialList //例如Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[3]内容为春山图纸·置物*1,精工木件*4,墙木榫*2,则materialList= { "鎏金铁块":0, "精工木件":4, "墙木榫":2}; //花费累加到moneyCost,例如Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[4]五铢钱花费*数量Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[4] moneyCost+=Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[4]*Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[5]; materialSum(Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[3],Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[5]); materialConvert(); } //把元素列表中的结果写成一个文本文件更新到id="SumTable"的表格第二行第一格中,例如elementList= { "鎏金铁块":0, "精工木件":8, "墙木榫":4,"春山图纸·置物"21},则更新到id="SumTable"的表格第二行第一格中 result=document.getElementById("SumTable"); result.getElementsByTagName("tr")[1].getElementsByTagName("td")[0].innerHTML=elementList; //把花费写到id="SumTable"的表格第四行第一格中 result.getElementsByTagName("tr")[3].getElementsByTagName("td")[0].innerHTML=moneyCost; }
} //写一个函数遍历传入string的值,分解具体材料乘以数量并乘以传入的总数累加到 materialList //例如传入的值为("春山图纸·置物*1,精工木件*4,墙木榫*2",2),则materialList= { "鎏金铁块":0, "精工木件":8, "墙木榫":4,"春山图纸·置物"21}, function materialSum(materialString,quantity) {
var materialArray = materialString.split(","); for(i=0;i<materialArray.length;i++) { var material = materialArray[i].split("*"); //如果materialList中没有这个材料,就添加这个材料 if(materialList[material[0]]==undefined) { materialList[material[0]]=0; } materialList[material[0]]+=material[1]*quantity; }
} //写一个函数,遍历所有材料转换成基础物资,更新到列表elementList function materialConvert() {
for(var material in materialList) { //如果materialList中有这个材料,就转换成基础物资 if(compose[material]!=undefined) { for(var element in compose[material]) { if(elementList[element]==undefined) { elementList[element]=0; } elementList[element]+=compose[material][element]*materialList[material]; } } //如果compose表中没有这个材料,就直接添加到elementList else { if(elementList[material]==undefined) { elementList[material]=0; } elementList[material]+=materialList[material]; } }
}
function cleanScreen()//清空函数,将所有内容重置为0
{
for(i=1;i<Pt.getElementsByTagName("tr").length;i++)//遍历表格 { //Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[0]中的checkbox设为未选中 Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[0].getElementsByTagName("input")[0].checked = false; //Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[5]设为0 Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[5].getElementsByTagName("input")[0].value = 0; } //将materialList和elementList清空 materialList = { "鎏金铁块":0, "精工木件":0, "墙木榫":0}; elementList={"鸢绒":0,"原木":0,"铁砂":0,"细沙":0,"麻草":0}; //将moneyCost清空 moneyCost = 0; //将id="SumTable"的表格第二行第一格中的内容清空 result=document.getElementById("SumTable"); result.getElementsByTagName("tr")[1].getElementsByTagName("td")[0].innerHTML=""; //将id="SumTable"的表格第四行第一格中的内容清空 result.getElementsByTagName("tr")[3].getElementsByTagName("td")[0].innerHTML="";
}