1购物车
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jquery练习01购物车</title>
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.min.js"></script>
<style type="text/css">
table{
width:800px;
margin:10px auto;
border:1px solid blue;
border-collapse: collapse;
}
td,th{
border:1px solid blue;
padding:10px;
text-align: center;
}
#font_count{
background-color: #aaaaaa;
color:red;
font-weight: bold;
}
</style>
</head>
<body>
<table id="tab_goods">
<tr>
<th colspan="6" style="text-align: left;">
<input type="button" value="添加商品" id="but_add"/> |
<input type="button" value="反选商品" id="but_fan"/> |
<input type="button" value="删除选中" id="but_del"/> |
<span>商品的总价:<font id="font_count">0元</font></span>
</th>
</tr>
<tr>
<th>顺序</th><th>名称</th><th>数量</th><th><a href="javascript:sortPrice();">单价</a></th><th>厂家</th><th><input type="checkbox" name="box_all"/></th>
</tr>
</table>
<script type="text/javascript">
function sortPrice(){
alert("排序");
}
$(function(){
$("#but_del").click(function(){
$.each($("input[name='box_goods']:checked"),function(i,n){
$(n).parents("tr").remove();
});
setFontText();
});
});
function setClickEvent(){
$("input[name='box_goods']").unbind();
$("input[name='box_goods']").click(setFontText);
}
function setFontText(){
var sum=0;
$.each($("input[name='box_goods']:checked"),function(i,n){
var $tr=$(n).parents("tr");
var collTd=$tr.children("td");
var num=collTd[2].innerText;
var price=collTd[3].innerText;
sum+=parseFloat(num)*parseFloat(price);
});
$("#font_count").text(parseInt(sum*100)/100+"元");
}
$(function(){
$("input[name='box_all']").bind("click",function(){
var bchecked=$(this).attr("checked");
$("input[name='box_goods']").attr("checked",bchecked);
setFontText();
});
});
$(function(){
$("#but_fan").bind("click",function(){
$.each($("input[name='box_goods']"),function(i,n){
$(n).attr("checked",!$(n).attr("checked"));
});
setFontText();
});
});
$(function(){
var arr=[["铅笔","上海"],["笔记本","新华"],["橡皮","中原"],["皮鞋","意尔康"],["上衣","森马服饰"],["铅笔","上海"],["笔记本","新华"],["橡皮","中原"],["皮鞋","意尔康"],["上衣","森马服饰"]];
for(var i=0;i<arr.length;i++){
var $tr=$("<tr></tr>");
$tr.append($("<td>"+(i+1)+"</td>"));
$tr.append($("<td>"+arr[i][0]+"</td>"));
$tr.append($("<td>"+(parseInt(Math.random()*10))+"</td>"));
$tr.append($("<td>"+(parseInt(Math.random()*100)/10)+"</td>"));
$tr.append($("<td>"+arr[i][1]+"</td>"));
$tr.append($("<td><input type='checkbox' name='box_goods'/></td>"));
$("#tab_goods").append($tr);
}
$("#form_add").hide();
$("#but_add").bind("click",function(){
$("#form_add").show();
});
$("#form_add").submit(function(){
var $tr=$("<tr></tr>");
$tr.append($("<td>"+($("#tab_goods tr").length-1)+"</td>"));
$tr.append($("<td>"+($("#tab_add_goods input[name='gname']").val())+"</td>"));
$tr.append($("<td>"+($("#tab_add_goods input[name='gprice']").val())+"</td>"));
$tr.append($("<td>"+($("#tab_add_goods input[name='gnum']").val())+"</td>"));
$tr.append($("<td>"+($("#tab_add_goods input[name='gaddress']").val())+"</td>"));
$tr.append($("<td><input type='checkbox' name='box_goods'/></td>"));
$("#tab_goods").append($tr);
setTrColor();
gaoLiang();
setClickEvent();
return false;
});
setTrColor();
gaoLiang();
setClickEvent();
});
var vbgcolor="";
function gaoLiang(){
$("#tab_goods tr:gt(1)").unbind();
$("#tab_goods tr:gt(1)").hover(function(){
vbgcolor= $(this).css("background-color");
$(this).css("background-color","#aa6666");
},function(){
$(this).css("background-color",vbgcolor);
});
}
function setTrColor(){
$("#tab_goods tr:even").css("background-color","#aacc99");
$("#tab_goods tr:odd").css("background-color","#99aacc");
}
</script>
<hr/>
<form id="form_add" >
<table id="tab_add_goods">
<tr>
<th>商品名称</th><td><input type="text" name="gname"/></td>
</tr>
<tr>
<th>商品单价</th><td><input type="text" name="gprice"/></td>
</tr>
<tr>
<th>商品数量</th><td><input type="text" name="gnum"/></td>
</tr>
<tr>
<th>商品厂家</th><td><input type="text" name="gaddress"/></td>
</tr>
<tr>
<th colspan="2">
<input type="submit" value="添加"/>
</th>
</tr>
</table>
</form>
</body>
</html>
2 实现按单价排序
var n=0;
function sortPrice(){
var $collTr=$("#tab_goods tr:gt(1)");
var arrTr=$collTr.toArray();
arrTr.sort(function(tri,trj){
var pricei=parseFloat($(tri).children("td:eq(3)").text());
var pricej=parseFloat($(trj).children("td:eq(3)").text());
return pricei==pricej?0:(pricei>pricej?1:-1);
});
if(n==1){
arrTr.reverse();
}
for(var i=0;i<arrTr.length;i++){
$(arrTr[i]).children("td:first").text(i+1);
$("#tab_goods").append($(arrTr[i]));
}
setTrColor();
n=(n+1)%2;
}
3 日历
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jquery练习02日历插件</title>
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.min.js"></script>
<style type="text/css">
#div_date{
width:350px;
border:1px solid blue;
padding:2px;
margin-top:10px;
text-align: center;
font-weight: bold;
}
#tab_date{
border:1px solid blue;
width:345px;
border-collapse: collapse;
margin:2px auto;
}
#tab_date th,#tab_date td{
text-align: center;
border:1px solid blue;
padding:4px;
}
#tab_date th{
background: #cccccc;
color:blue;
}
</style>
</head>
<body>
<input type="date" name="birth"/><br/>
<input type="text" name="birth" id="input_date"/>
<script type="text/javascript">
var date=new Date();
var year=date.getFullYear(),month=date.getMonth()+1;
$(function(){
$("#input_date").focus(function(){
$("#div_date").remove();
$(this).after("<div id='div_date'></div>");
createTable(date);
});
$("#input_date").blur(function(){
});
});
function createTable(date){
var $tab=$("<table id='tab_date'></table>");
var $tr1=$("<tr><th colspan='7'></th></tr>");
$tr1.children("th:first").append("<input type='button' value='<<' id='but_year_reduce'/> ");
$tr1.children("th:first").append("<input type='button' value='<' id='but_month_reduce'/> ");
$tr1.children("th:first").append("<input type='text' id='text_date'/> ");
$tr1.children("th:first").append("<input type='button' value='>' id='but_month_add'/> ");
$tr1.children("th:first").append("<input type='button' value='>>' id='but_year_add'/>");
var weekStr="日一二三四五六";
var $tr2=$("<tr></tr>");
for (var i = 0; i < weekStr.length; i++) {
$tr2.append("<th>"+(weekStr.charAt(i))+"</th>");
}
$tab.append($tr1); $tab.append($tr2);
var daysTotal=getMyDays(year,month);
var n=0;
for(var i=1;true;i++){
var $tr=$("<tr></tr>");
for(var j=0;j<=6;j++){
var $td=$("<td></td>");
if((n==0&&i==1&&j==getFirstDayWeek(year,month))||(n!=0)){
n++;
}
if(n!=0&&n<=daysTotal){
$td.text(n);
}
$tr.append($td);
}
$tab.append($tr);
if(n>=daysTotal){
break;
}
}
$("#div_date").append($tab);
$("#text_date").attr("disabled","disabled");
$("#text_date").css({"width":"100px","text-align":"center"});
$("#text_date").val(year+"年"+month+"月");
$("#tab_date tr:gt(1) td:parent").hover(function(){
$(this).css("background-color","#cc6699");
},function(){
$(this).removeAttr("style");
});
$("#tab_date tr:gt(1) td:parent").bind("click",function(){
$(this).css("background-color","#aaaaaa");
date.setDate($(this).text());
$("#input_date").val(year+"年"+month+"月"+date.getDate()+"日");
});
}
function getMyDays(year,month){
switch(month){
case 4:
case 6:
case 9:
case 11:
return 30;
case 2:
return ((year%400==0)||(year%4==0&&year%100!=0))?29:28;
default:
return 31;
}
}
function getFirstDayWeek(year,month){
var dateFirst=new Date(year,month-1,1);
return dateFirst.getDay();
}
</script>
</body>
</html>
4 日历补充
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jquery练习02日历插件</title>
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.min.js"></script>
<style type="text/css">
#div_date{
width:350px;
border:1px solid blue;
padding:2px;
margin-top:10px;
text-align: center;
font-weight: bold;
}
#tab_date{
border:1px solid blue;
width:345px;
border-collapse: collapse;
margin:2px auto;
}
#tab_date th,#tab_date td{
text-align: center;
border:1px solid blue;
padding:4px;
}
#tab_date th{
background: #cccccc;
color:blue;
}
</style>
</head>
<body>
<input type="date" name="birth"/><br/>
<input type="text" name="birth" id="input_date"/>
<script type="text/javascript">
var date,year,month;
$(function(){
date=new Date();year=date.getFullYear();month=date.getMonth()+1;
$("#input_date").toggle(function(){
$(this).after("<div id='div_date'></div>");
createTable();
},function(){
$("#div_date").remove();
});
});
function changeYear(m){
date.setFullYear(date.getFullYear()+m);
year=date.getFullYear();month=date.getMonth()+1;
createTable();
}
function changeMonth(m){
date.setMonth(date.getMonth()+m)
year=date.getFullYear();month=date.getMonth()+1;
createTable();
}
var checkTd;
function createTable(){
$("#div_date").empty();
var $tab=$("<table id='tab_date'></table>");
var $tr1=$("<tr><th colspan='7'></th></tr>");
$tr1.children("th:first").append("<input type='button' value='<<' οnclick='changeYear(-1)'/> ");
$tr1.children("th:first").append("<input type='button' value='<' οnclick='changeMonth(-1)'/> ");
$tr1.children("th:first").append("<input type='text' id='text_date'/> ");
$tr1.children("th:first").append("<input type='button' value='>' οnclick='changeMonth(1)'/> ");
$tr1.children("th:first").append("<input type='button' value='>>' οnclick='changeYear(1)'/>");
var weekStr="日一二三四五六";
var $tr2=$("<tr></tr>");
for (var i = 0; i < weekStr.length; i++) {
$tr2.append("<th>"+(weekStr.charAt(i))+"</th>");
}
$tab.append($tr1); $tab.append($tr2);
var daysTotal=getMyDays();
var n=0;
for(var i=1;true;i++){
var $tr=$("<tr></tr>");
for(var j=0;j<=6;j++){
var $td=$("<td></td>");
if((n==0&&i==1&&j==getFirstDayWeek())||(n!=0)){
n++;
}
if(n!=0&&n<=daysTotal){
$td.text(n);
}
$tr.append($td);
if(n==date.getDate()){
checkTd=$td[0];
$td.css("background-color","#aaaaaa");
}
}
$tab.append($tr);
if(n>=daysTotal){
break;
}
}
$("#div_date").append($tab);
$("#text_date").attr("disabled","disabled");
$("#text_date").css({"width":"100px","text-align":"center"});
$("#text_date").val(year+"年"+month+"月");
$("#tab_date tr:gt(1) td:parent").hover(function(){
$(this).css("background-color","#cc6699");
},function(){
if(this==checkTd){
$(this).css("background-color","#aaaaaa");
}else{
$(this).css("background-color","#ffffff");
}
});
$("#tab_date tr:gt(1) td:parent").bind("click",function(){
checkTd=this;
$("#tab_date tr:gt(1) td:parent").css("background-color","#ffffff");
$(this).css("background-color","#aaaaaa");
date.setDate($(this).text());
$("#input_date").val(year+"年"+month+"月"+date.getDate()+"日");
});
$("#input_date").val(year+"年"+month+"月"+date.getDate()+"日");
}
function getMyDays(){
switch(month){
case 4:
case 6:
case 9:
case 11:
return 30;
case 2:
return ((year%400==0)||(year%4==0&&year%100!=0))?29:28;
default:
return 31;
}
}
function getFirstDayWeek(){
var dateFirst=new Date(year,month-1,1);
return dateFirst.getDay();
}
</script>
</body>
</html>
5 扫雷
5.1 扫雷规则
展示信息:总雷数 剩余雷数(总雷数-插旗数) 用时
规格:难度增加=雷数增加+类概率增加: 10% 15% 20%
状态:被点击(触雷+周围0雷+周围n雷+插旗)+未点击
规则:点击到雷 结束
点击到周围n雷的 显示n即可
点击到周围0雷的 周围的全展示----
5.2 扫雷代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jquery练习03扫雷</title>
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.min.js"></script>
<style type="text/css">
#div_0{
border:1px solid blue;
margin:10px auto;
padding:10px;
width:520px;
height:560px;
text-align: center;
}
table{
width:500px;
margin:10px auto;
border:1px solid blue;
border-collapse: collapse;
}
#tab_lei{
height:500px;
}
td{
width:45px;
height:45px;
background-color: #aaaaaa;
background-repeat: none;
background-position: center;
}
td,th{
border:3px double #cccccc;
text-align: center;
}
span{
font-weight: bold;
color:red;
}
.cla{
background-color: #ffffff;
}
</style>
</head>
<body>
<div id="div_0">
<table id="tab_num">
<tr>
<th>总数:<span id="span_total"></span></th>
<th>剩余:<span id="span_sheng_yu"></span></th>
<th>时间:<span id="span_time"></span></th>
</tr>
</table>
<table id="tab_lei"></table>
</div>
<script type="text/javascript">
$(function(){
createTable(10,10,10);
setSpan();
});
var setTimeSpanId;
var collLei=[];
var collTd=[];
function setSpan(){
$("#span_total").text("10");
$("#span_sheng_yu").text("10");
$("#span_time").text("0");
setTimeSpanId=window.setInterval("$('#span_time').text(parseInt($('#span_time').text())+1)",1000);
}
function createTable(hang,lie,num){
for(var i=0;i<hang;i++){
var $tr=$("<tr></tr>");
for(var j=0;j<lie;j++){
var $td=$("<td></td>");
$tr.append($td);
}
collTd.push($tr[0].cells);
$("#tab_lei").append($tr);
}
for(var n=0;n<num;){
var hangNum=parseInt(Math.random()*hang);
var lieNum=parseInt(Math.random()*lie);
var $td=$("#tab_lei tr:eq("+hangNum+") td:eq("+lieNum+")");
if(!arrContains(collLei,$td[0])){
collLei.push($td[0]);
$td.text("雷");
n++;
}
}
$("#tab_lei td").bind("click",function(){
if(arrContains(collLei,this)){
alert("触雷了!!!游戏结束!");
$(this).css("background-image","url('01.png')");
window.clearInterval(setTimeSpanId);
$("#tab_lei td").unbind();
return;
}
showNum(this);
});
$("#tab_lei td").bind("mousedown",function(e){
if(e.button==2){
if(parseInt($("#span_sheng_yu").text())<=0){
alert("旗子的数量大于雷数了!!!!");
return;
}
if($(this).css("background-image")=="none"){
$(this).css("background-image","url('02.png')");
$("#span_sheng_yu").text(parseInt($("#span_sheng_yu").text())-1);
}else{
$(this).css("background-image","none");
$("#span_sheng_yu").text(parseInt($("#span_sheng_yu").text())+1);
}
}
});
}
function showNum(td){
if($(td).attr("class")){
return;
}
var collFriends=getFriends(td);
var count=0;
for(var i=0;i<collFriends.length;i++){
count+=arrContains(collLei,collFriends[i])?1:0;
}
$(td).addClass("cla");
if(count!=0){
$(td).text(count);
}
$(td).unbind();
if(count==0){
for(var i=0;i<collFriends.length;i++){
showNum(collFriends[i]);
}
}
}
function arrContains(arr,td){
for(var i=0;i<arr.length;i++){
if(arr[i]==td){
return true;
}
}
return false;
}
function getFriends(td){
var i,j;
for(var ki=0;ki<collTd.length;ki++){
for(var kj=0;kj<collTd[ki].length;kj++){
if(collTd[ki][kj]==td){
i=ki;j=kj;
}
}
}
var collFriends=[];
for(var ii=i-1;ii<=i+1;ii++){
for(var jj=j-1;jj<=j+1;jj++){
if(collTd[ii]&&collTd[ii][jj]){
if(!(ii==i&&jj==j)){
collFriends.push(collTd[ii][jj]);
}
}
}
}
return collFriends;
}
</script>
</body>
</html>