js 点击checkbox进行判断后再决定是否选中

如题,就是checkbox点击事件触发,是不是就必须触发且执行选中(change)事件?搜了下没发现类似提问,这个效果大家应该蛮常见的吧,是不是我哪里搞错了?我现在只好先选中,然后判断不通过再把它不选中。

4个回答

可以 用 event.preventDefault(); 来阻止默认操作

没有明白你的意思,你是要判断checkbox是否被选中还是?如果是的话,如下
$("input[type='checkbox']").is(':checked')

<!DOCTYPE html>




<br> function zzcb(event,flag){<br> if(flag){<br> event=event||window.event; <br> event.preventDefault();<br> }<br> }</p> <pre><code> &lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;input type=&quot;checkbox&quot; onclick=&quot;zzcb(event,false)&quot; /&gt; &lt;/body&gt; </code></pre> <p></html></p>
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
js/jq判断列表中的CheckBox是否选中
js/jq判断列表中的CheckBox是否选中,并把checked==true的CheckBox替换成开启的图片,checked==false的CheckBox替换成关闭的图,帮帮忙各位
jquery 表格行选一行选中checkbox,但首次点击checkbox要点两次才能选中
这是js 行选的代码段,可以行选,但是点击checkbox本身要点鼠标两次才能选中,求原因。 ``` // 行选中 $("table tbody tr").click(function() { var input = $(this).find("input[type=checkbox]");//获取checkbox //给checkbox的click添加阻止冒泡事件 input.click(function(event){ event.stopPropagation(); }); //判断当前checkbox是否为选中状态 if(input.prop("checked")){ input.prop("checked",false); } else{ input.prop("checked",true); } }); ```
如何判断多个checkbox被选中?
tbody 中有多个input type=checkbox, 我想让tbody中所有input type=checkbox被选中时,thead中的input type=checkbox 选中,否则 为不被选中。下边为我的代码,不能实现这个效果,谁能指点我一下?谢谢 ![图片说明](https://img-ask.csdn.net/upload/201702/26/1488078533_706721.jpg)
js怎么判断checkbox的状态?
当所有checkbox(默认都选中)中的一个取消选中,那么怎么同时取消全选的checkbox。就像淘宝购物车上的checkbox一样的功能。
用jquery判断datagrid中checkbox是否被选中的有关问题
<script type="text/javascript"> $(function(){ $('#pro_manage_show_grid').datagrid({ title:'标准任务执行查询', iconCls:'icon-ok', nowrap: true, autoRowHeight: true, striped: true, collapsible:true, method: 'post', url:path+'/monitor/f1/queryTasklogAll.do', sortName: '', sortOrder: 'asc', idField:'id', pageSize:20, pageList:[20,50,100], loadMsg:'请稍候,努力加载中...', singleSelect:true, fitColumns:true, fit:true, columns:[[ {field:'ID',title:'ID',width:100,checkbox:true,resizable:false}, {field:'bizBeginDate',title:'业务开始日期',width:100,sortable:true,resizable:true}, {field:'bizEndDate',title:'业务结束日期',width:100,sortable:true,resizable:true}, {field:'taskCode',title:'任务编码',width:100,resizable:true}, {field:'taskStatus',title:'任务状态',width:100,resizable:true}, {field:'taskName',title:'任务中文名',width:100,resizable:true}, {field:'beginDt',title:'执行开始时间',width:100,resizable:true}, {field:'endDt',title:'执行结束时间',width:100,resizable:true}, {field:'workFlowRunId',title:'工作流ID',width:100,resizable:true} ]], pagination:true, rownumbers:true, collapsible:false, remoteSort:false, tools:'#pro_manage_list_tools', //loadFilter:pagerFilter loader:dataLoader }); //给状态为-1的价位红色 $('#pro_manage_show_grid').datagrid({ rowStyler:function(index,row){ if(row.taskStatus==-1){ return 'background-color:red;'; } } }); //$('#pro_manage_show_grid').datagrid('loadData', getData()); var p = $('#pro_manage_show_grid').datagrid('getPager'); if (p){ $(p).pagination({ onBeforeRefresh:function(){ alert('before refresh'); } }); } }); //自适应 $(window).resize(function(){ $("#pro_manage_list").layout('resize'); }); //此界面,设置成定时刷新界面。每两分钟刷新一次 function myrefresh(){ window.location.reload(); } setTimeout('myrefresh()',1000*60*2); //每两分钟刷新一次 function query(){ //Please wait... $.blockUI({css: { border: 'none', padding: '15px', backgroundColor: '#000', '-webkit-border-radius': '10px', '-moz-border-radius': '10px', opacity: .5, color: '#fff'}}); // $.ajax({ url:path+'/monitor/f1/queryTasklogList.do', type: 'POST', dataType: 'json', data: $("#dataForm").serialize(), success: function(msg){ var posData = eval(msg); $('#pro_manage_show_grid').datagrid('loadData',posData); $.unblockUI(); }, error: function(msg){ $.unblockUI(); alert("操作失败!"); } }); } function querylog(){ var row = $('#pro_manage_show_grid').datagrid('getSelected'); var _url = path+'/monitor/f2/queryLog.do?workFlowId='+ row.workFlowRunId; window.parent.initCenter("日志信息",_url,"bb",true); } </script> 在按钮事件激发querylog()中如何判断checkbox是否选中
为何jQuery判断已选中的checkbox,Chrome获取的值永远是false而IE是true?
代码如下: ``` $(":checkbox").on("blur", function () { console.log($(this).prop("checked")); console.log(this.checked); } ``` 在chrome中输出为:false false 而在IE控制台的输出为:true true ……一口老血 求问这究竟是为何?? 感谢 daniellinbiti 的回答。已经找到问题所在了,就在于on绑定的是blur状态而不是change状态。这段代码一开始编写测试的时候也是正常的,后来别人运行的时候出了问题,我再测试就发现了这个问题。 结果就是chrome必须要绑定change事件才能够保证百分百获取正确值。
EXT的fieldset中checkbox选中状态如何判断?
{ title: '统计方式', xtype: 'fieldset', checkboxToggle : false, autoHeight :true, items: [{ xtype : 'combo', name : 'tjfs', id : "tjfs", labelSeparator :"", emptyText:'请选择统计方式...', width : 150, store : new Ext.data.SimpleStore({ fields : ['text','value'], data : [['行政级别','duty_level'], ['用工形式','worktype'], ['人员分类','person_classify'], ['职称等级','duty_title_level'], ['技术等级','jishudengji'], ['政治面貌','party']] }), displayField : 'text',//显示的值 valueField :'value', mode : 'local', // value : '群众', forceSelection : true, editable : false, triggerAction : 'all' }] }
怎么在函数判断条件中默认复选框被选中
有一个复选框 <input type="checkbox" id="mixPoint" name="property.payMode" value="2"/>话费支付<br> ![这个就是那个复选框](https://img-ask.csdn.net/upload/201707/07/1499420664_928292.png) 复选框中不用checked.而是要在script函数中做判断 如图: ![怎么在这个函数中做判断,不管有没有选中复选框都让他选中](https://img-ask.csdn.net/upload/201707/07/1499420315_211872.png)
checkbox选中元素遍历循环,alert 和layer.msg问题
## 一下是选中事件,页面就不展示了; 具体问题是:在进行选中元素的遍历时,如果在条件判断中用alert则没有问题,弹窗正常出现;但是如果将alert换成layer.msg则不走if判断。不知道为什么 跪求各位大神看看 ``` function auditPass(status){ var checks = $('input[name="orderIndexs"]:checked'); var status=status; if(checks.length==0){ layer.msg("请至少选择一项", {title : '提示框',icon : 0,time : 3000,offset: '100px',shade: [0.5],scrollbar: false}); return false; }else{ var ids=""; //checks.each(function(i){ for(var i=0;i<checks.length;i++){ var id= checks[i].value; var pstatus = $('#orderStatus_' + id).val(); if(pstatus == '1') { if(i==0) { ids = id; } else { ids += (";" + id); } }else{ //alert("当前["+id+"]!") layer.msg("当前["+id+"]", {title : '提示框',icon : 0,time : 300,offset: '100px',shade: [0.5],scrollbar: false}); } } ```
Extjs 中怎样取得EditorGridPanel中record中的列对象?
在一个EditorGridPanel中,有一列是checkbox,我想判断它是否备选中,如果选中就删除这一行。但不知道怎么判断checkbox备选中了? <br />有没有知道的大侠,请指教! <br />谢谢!!
求JQ或JS仿京东淘宝属性规格SKU样式
把这个修改成属性值可以在input-text区自定义,删除自定义的值后自动恢复初始属性值。如图所示功能:![图片说明](https://img-ask.csdn.net/upload/201608/13/1471094693_376707.png) ``` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>生成表格</title> <link rel="stylesheet" type="text/css" href="css/table.css"> <style type="text/css"> .hide {display: none;} .mt10 {margin-top: 10px;} .control-group {overflow: hidden;} .control-group a {color: #666;text-decoration: none;} .control-group a:hover {text-decoration: underline;} .control-label {float: left;width: 100px;line-height: 24px;} .controls {overflow: hidden;} .controls input[type="text"] {border: 1px solid #ddd;height: 20px;width: 120px;} .controls input[type="button"] {margin-top: 10px;height: 32px;cursor: pointer;} .config_item {margin-top: 10px;border: 1px dashed #ddd;padding: 10px;} .config_item section {margin-top: 10px;} .config_item section span {margin-right: 16px;} .config_item input[type="text"] {width: 80px;text-align: center;} .choose_config .Father_Title {margin: 0;margin-bottom: 10px;padding: 0;font-size: 16px;font-weight: normal;display: inline-block;vertical-align: middle;} .choose_config .Father_Item {padding: 0;margin: 0;margin-bottom: 10px;list-style: none;display: inline-block;vertical-align: middle;} .choose_config .Father_Item li {display: inline-block;margin-right: 10px;} .columnList {border-collapse: collapse;} .columnList th {background-color: #eee;} .columnList th,.columnList td {padding: 5px 10px;border: 1px solid #ddd;line-height: 24px;text-align: center;} </style> </head> <body> <!-- 选择信息 --> <div class="control-group choose_config"> <div class="control-label">选择信息:</div> <div class="controls"> <h3 class="Father_Title">颜色:</h3> <ul class="Father_Item Father_Item0"> <li><label><input id="Checkbox0" type="checkbox" class="checkbox check_all" value="全选">全选</label></li> <li><label><input id="Checkbox0" type="checkbox" class="checkbox check_item" value="红色">红色</label></li> <li><label><input id="Checkbox0" type="checkbox" class="checkbox check_item" value="白色">白色</label></li> <li><label><input id="Checkbox0" type="checkbox" class="checkbox check_item" value="土豪金">土豪金</label></li> </ul><br> <h3 class="Father_Title">内存:</h3> <ul class="Father_Item Father_Item1"> <li><label><input id="Checkbox0" type="checkbox" class="checkbox check_all" value="全选">全选</label></li> <li><label><input id="Checkbox1" type="checkbox" class="checkbox check_item" value="32G">32G</label></li> <li><label><input id="Checkbox1" type="checkbox" class="checkbox check_item" value="16G">16G</label></li> </ul><br> <h3 class="Father_Title">尺寸:</h3> <ul class="Father_Item Father_Item2"> <li><label><input id="Checkbox0" type="checkbox" class="checkbox check_all" value="全选">全选</label></li> <li><label><input id="Checkbox2" type="checkbox" class="checkbox check_item" value="5.5">5.5</label></li> <li><label><input id="Checkbox2" type="checkbox" class="checkbox check_item" value="4.5">4.5</label></li> <li><label><input id="Checkbox2" type="checkbox" class="checkbox check_item" value="3.5">3.5</label></li> </ul><br> </div> </div> <!-- 生成表格 --> <div class="control-group mt10"> <div class="control-label">生成表格:</div> <div class="controls" id="createTable"> </div> </div> <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript"> /** * Created by Administrator on 14-12-01. * 模拟淘宝SKU添加组合 * 页面注意事项: * 1、 .Father_Title 这个类作用是取到所有标题的值,赋给表格,如有改变JS也应相应改动 * 2、 .Father_Item 这个类作用是取类型组数,有多少类型就添加相应的类名:如: Father_Item1、Father_Item2、Father_Item3 ... */ $(function() { $(document).on('change', '.choose_config label', function() { var parent=$(this).parents('.Father_Item'); var _this=$('.checkbox',this); // 是否全选 $('.checkbox',parent).each(function() { var bCheck2=true; if (_this.hasClass('check_all')) { if (_this.get(0).checked) { bCheck2=true; $('.check_item',parent).prop('checked', bCheck2); }else{ bCheck2=false; $('.check_item',parent).prop('checked', bCheck2); } return false; } else { if ((!this.checked)&&(!$(this).hasClass('check_all'))) { bCheck2 = false; $('.check_all',parent).prop('checked', bCheck2); return false; } } $('.check_all',parent).prop('checked', bCheck2); }); step.Creat_Table(); }); var step = { // 信息组合 Creat_Table: function() { step.hebingFunction(); var SKUObj = $('.Father_Title'); var arrayTile = new Array(); // 表格标题数组 var arrayInfor = new Array(); // 盛放每组选中的CheckBox值的对象 var arrayColumn = new Array(); // 指定列,用来合并哪些列 var bCheck = true; // 是否全选,只有全选,表格才会生成 var columnIndex = 0; $.each(SKUObj, function(i, item) { arrayColumn.push(columnIndex++); arrayTile.push(SKUObj.eq(i).text().replace(':', '')); var itemName = '.Father_Item' + i; var bCheck2 = true; // 是否全选 // 获取选中的checkbox的值 var order = new Array(); $(itemName + ' .check_item:checked').each(function() { order.push($(this).val()); }); arrayInfor.push(order); if (order.join() == '') { bCheck = false; } }) // 开始生成表格 if (bCheck) { $('#createTable').html(''); var table = $('<table id="process" class="columnList"></table>'); table.appendTo($('#createTable')); var thead = $('<thead></thead>'); thead.appendTo(table); var trHead = $('<tr></tr>'); trHead.appendTo(thead); // 创建表头 var str = ''; $.each(arrayTile, function(index, item) { str += '<th width="100">' + item + '</th>'; }) str += '<th width="200">价格</th><th width="100">操作</th>'; trHead.append(str); var tbody = $('<tbody></tbody>'); tbody.appendTo(table); var zuheDate = step.doExchange(arrayInfor); if (zuheDate.length > 0) { //创建行 $.each(zuheDate, function(index, item) { var td_array = item.split(','); var tr = $('<tr></tr>'); tr.appendTo(tbody); var str = ''; $.each(td_array, function(i, values) { str += '<td>' + values + '</td>'; }); str += '<td ><input name="Txt_PriceSon" class="inpbox inpbox-mini" type="text"></td>'; str += '<td ><a href="#">删除</a></td>'; tr.append(str); }); } //结束创建Table表 arrayColumn.pop(); //删除数组中最后一项 //合并单元格 $(table).mergeCell({ // 目前只有cols这么一个配置项, 用数组表示列的索引,从0开始 cols: arrayColumn }); } else { //未全选中,清除表格 document.getElementById('createTable').innerHTML = ""; } }, hebingFunction: function() { $.fn.mergeCell = function(options) { return this.each(function() { var cols = options.cols; for (var i = cols.length - 1; cols[i] != undefined; i--) { mergeCell($(this), cols[i]); } dispose($(this)); }) }; function mergeCell($table, colIndex) { $table.data('col-content', ''); // 存放单元格内容 $table.data('col-rowspan', 1); // 存放计算的rowspan值 默认为1 $table.data('col-td', $()); // 存放发现的第一个与前一行比较结果不同td(jQuery封装过的), 默认一个"空"的jquery对象 $table.data('trNum', $('tbody tr', $table).length); // 要处理表格的总行数, 用于最后一行做特殊处理时进行判断之用 // 进行"扫面"处理 关键是定位col-td, 和其对应的rowspan $('tbody tr', $table).each(function(index) { // td:eq中的colIndex即列索引 var $td = $('td:eq(' + colIndex + ')', this); // 获取单元格的当前内容 var currentContent = $td.html(); // 第一次时走次分支 if ($table.data('col-content') == '') { $table.data('col-content', currentContent); $table.data('col-td', $td); } else { // 上一行与当前行内容相同 if ($table.data('col-content') == currentContent) { // 上一行与当前行内容相同则col-rowspan累加, 保存新值 var rowspan = $table.data('col-rowspan') + 1; $table.data('col-rowspan', rowspan); // 值得注意的是 如果用了$td.remove()就会对其他列的处理造成影响 $td.hide(); // 最后一行的情况比较特殊一点 // 比如最后2行 td中的内容是一样的, 那么到最后一行就应该把此时的col-td里保存的td设置rowspan // 最后一行不会向下判断是否有不同的内容 if (++index == $table.data('trNum')) $table.data('col-td').attr('rowspan', $table.data('col-rowspan')); } // 上一行与当前行内容不同 else { // col-rowspan默认为1, 如果统计出的col-rowspan没有变化, 不处理 if ($table.data('col-rowspan') != 1) { $table.data('col-td').attr('rowspan', $table.data('col-rowspan')); } // 保存第一次出现不同内容的td, 和其内容, 重置col-rowspan $table.data('col-td', $td); $table.data('col-content', $td.html()); $table.data('col-rowspan', 1); } } }) } // 同样是个private函数 清理内存之用 function dispose($table) { $table.removeData(); } }, doExchange: function(doubleArrays) { // 二维数组,最先两个数组组合成一个数组,与后边的数组组成新的数组,依次类推,知道二维数组变成以为数组,所有数据两两组合 var len = doubleArrays.length; if (len >= 2) { var arr1 = doubleArrays[0]; var arr2 = doubleArrays[1]; var len1 = arr1.length; var len2 = arr2.length; var newLen = len1 * len2; var temp = new Array(newLen); var index = 0; for (var i = 0; i < len1; i++) { for (var j = 0; j < len2; j++) { temp[index++] = arr1[i] + ',' + arr2[j]; } } var newArray = new Array(len - 1); newArray[0] = temp; if (len > 2) { var _count = 1; for (var i = 2; i < len; i++) { newArray[_count++] = doubleArrays[i]; } } return step.doExchange(newArray); } else { return doubleArrays[0]; } } } }) </script> </body> </html> ``` ``` ```
关于JS全选的问题请看一下哪里出错了?
下面这个代码可以点击全选,也可以取消全选,但是取消单个选择的结果时,全选还是选中的状态,求大神破解 ``` //全选 function selectAll(nameVal) { //获取复选框的form对象 var formObj = $("form:has(:checkbox[name='"+nameVal+"'])"); //根据form缓存数据判断批量全选方式 if(formObj.data('selectType')=='' || formObj.data('selectType')==undefined) { $("input:checkbox[name='"+nameVal+"']:not(:checked)").attr('checked',true); formObj.data('selectType','all'); } else { $("input:checkbox[name='"+nameVal+"']").attr('checked',false); formObj.data('selectType',''); } } ```
JavaScript中table遍历列的求和
![我想把价格那列输入的值总动求和显示到总价格哪一行中的文本框图片说明](https://img-ask.csdn.net/upload/201705/29/1496016506_926677.png) ``` <html> <head> <style type="text/css"> .yangshi { background:url(images/girl.jpg)no-repeat; height:348px; background-position: 0px 150px; } .test { text-align: right; width:80px; } </style> <script type="text/javascript"> //window.onload=function(){ // var bt=document.getElementById("look"); // var btt=document.getElementById("price"); // bt.onclick=function(){ // alert(btt.value); // } // } // 此方法是alert出文本框中输入的值 function getprice(rowNum) { var id = 'price0'+rowNum; var price = document.getElementById(id); alert(price.value); } //此方法是计算出被选中的价格的总价(自己注意传参和不需要传参的理解) function sumPrice(tableid) { var sum = 0; var tableObj = document.getElementById(tableid); for (var i = 0; i < tableObj.rows.length; i++){ //遍历Table的所有Row var checkBox = document.getElementById('checkbox0'+i); //判断 if(checkBox != null && checkBox.checked){ var id = 'price0'+i; var price = document.getElementById(id); alert(price.value); sum = parseInt(sum) + parseInt(price.value); } } alert(sum); } //此方法是判断文本框中是否有值 如果有则button好用 如果没有则button禁用 //第一步首先光标离开触发onblur事件 //第二步判断text是否为null和'' //第三步如果为null和''则button禁用 反之button可用(前提定位到按钮在哪) function textOnblur(value) { var sum = 0; var tableObj = document.getElementById('shoptable'); var id = 'price0'+value; var price = document.getElementById(id); var btnid = 'btn0'+value; var btnids = document.getElementById(btnid); //alert(btnids.id); for (var i = 0; i < tableObj.rows.length; i++){ //遍历table所有row if(price.value != null && price.value != ''){ document.getElementById(btnids.id).disabled="";//按钮有效 sum = parseInt(sum) + parseInt(price.value); break; }else{ document.getElementById(btnids.id).disabled="disabled";//按钮无效 sum = sum + 0; //alert(sum.value); } //现在是没有值的时候也循环 且 } document.getElementById("allPrice").value = parseInt(sum); //alert(sumPrice); } </script> </head> <body> <h1>购物价格表</h1> <form action="#" method = "post"> <table border="1" id="shoptable"> <thead style="background: #0FF"> <tr> <th>序号</th> <th>选择</th> <th>图片</th> <th>简介</th> <th>价格</th> <td>查看信息</td> <th>查看</th> </tr> </thead> <tbody style=" background: #9CC"> <tr> <td align="center">1</td> <td align="center"><input id="checkbox00" type="checkbox" name="checkbox1" value="checkbox1" /></td> <td><img src="images/black.jpg" style="width:50px;height:50px" /></td> <td>这个图片是黑色的你没看错!</td> <td align="right"><input type="text" id="price00" class="test" onblur="textOnblur(0)" /></td> <td><a href="black.html">查看信息</a></td> <td><input type="button" value="查看" onclick="getprice('0')" id="btn00" /></td> </tr> <tr> <td align="center">2</td> <td align="center"><input id="checkbox01" type="checkbox" name="checkbox2" value="checkbox2" /></td> <td><img src="images/red.jpg" style="width:50px;height:50px" /></td> <td>这个图片是红色的你没看错!</td> <td align="right"><input type="text" class="test" maxlength="3" id="price01" onblur="textOnblur(1)" /></td> <td><a href="black.html">查看信息</a></td> <td><input id="btn01" type="button" value="查看" onclick="getprice('1')" /></td> </tr> <tr> <td align="center">3</td> <td align="center"><input id="checkbox02" type="checkbox" name="checkbox3" value="checkbox3" /></td> <td><img src="images/blue.jpg" style="width:50px;height:50px" /></td> <td>这个图片是蓝色的你没看错!</td> <td align="right"><input type="text" class="test" maxlength="3" id="price02" onblur="textOnblur(2)" /></td> <td><a href="black.html">查看信息</a></td> <td><input id="btn02" type="button" value="查看" onclick="getprice('2')" /></td> </tr> <tr> <td align="center">4</td> <td align="center"><input id="checkbox03" type="checkbox" name="checkbox4" value="checkbox4" /></td> <td><img src="images/green.jpg" style="width:50px;height:50px" /></td> <td>这个图片是绿色的你没看错!</td> <td align="right"><input type="text" class="test" maxlength="3" id="price03" onblur="textOnblur(3)" /></td> <td><a href="black.html">查看信息</a></td> <td><input id="btn03" type="button" value="查看" onclick="getprice('3')" /></td> </tr> </tbody> <tfoot style=" background: red"> <td align="center">5</td> <td align="center">无</td> <td><img src="images/girl.jpg" style="width:50px;height:50px" /></td> <td>以上是所有的商品!</td> <td>总价:<input type="text" class="test" id="allPrice" /></td> <td><a href="black.html">查看信息</a></td> <td><input id="btn04" type="button" value="查看" /></td> </tfoot> </table> <input type="submit" value="提交" onclick="sumPrice('shoptable')"/> <input type="reset" value="重置" /> </form > <div class="yangshi"> aaaaaaaaaaaa </div> </body> </html> ``` 这是我的代码
为什么在打开模态框时不能马上获取树形选择框的value
现在需要对模态框关闭时判断是否修改,若修改了提示保存 ![图片说明](https://img-ask.csdn.net/upload/201908/08/1565250303_111608.png) ``` function getRoleList() { $("input[name='btSelectItem']").each(function (d) { if($(this).prop("checked")) { console.log($(this).val()); if($(this).val()!="on") { list2.push($(this).val()); console.log(list2.length); } } }); } function unSaveClose() { var list = new Array(); $("input[name='btSelectItem']").each(function (d) { if($(this).prop("checked")){ if($(this).val()!="on"){ list.push($(this).val()); } } }); if(list.length!=list2.length) // if(list.length!=0) { var index = layer.alert('请确认权限,选择关闭',{ btn: ['关闭',"取消"] //按钮 ``` 上面的方法是模态框打开时自动加载,但是却不能循环获取checkbox的值,只能获取到一次on 下面是点击关闭按钮时调用,可以获取所有选中的值 我现在是想先获取刚打开时的已选中框的长度与关闭时的选中框的长度判断是否修改,但是getRoleList() 却获取不了,两个方法都没有其他的调用 求解啊啊,没有分了,请大佬赐教
js获取多选框的value值时,老获取不到第一个框的value值,显示为空值。其他的都能获取
jsp页面中的代码: 承运人: input type="checkbox" name="carrier" id="carrier" value="HU" /> input type="checkbox" name="carrier" id="carrier" value="JD" /> input type="checkbox" name="carrier" id="carrier" value="GS" /> input type="checkbox" name="carrier" id="carrier" value="GN" /> input type="checkbox" name="carrier" id="carrier" value="8L" /> js代码: //取出后台传递过来的承运人值,然后填充到前台页面 var c=data.dtospecialPeriod.carrier;//这是从数据库取出的数据,格式为HU/GS/8L var s = []; s = c.split("/"); var obj = document.getElementsByName("carrier"); for(var x=0; x<s.length; x++){ for(var i=0;i<obj.length;i++ ){ if(obj[i].value==s[x]) { obj[i].checked=true; break; } } } 实现的功能是:从数据库取出承运人数据格式上面所示,然后显示到多选框中被选。问题:老取不到多选框carrier的第一个值(value=“HU”),其他值都能正常取到。这样就无法判断从后台传递来HU时,value=“HU”的框无法显示被选。怎么解决?谢谢
如何把复选框中的值传到form里?
<td> <input type="checkbox" name="enable_snapshot" value="1" id="enable_snapshot"> <span id="span18" style="color: #000000"> 是否有快照: </span> </td> 我想在jsp里写个复选框,如果复选框被选中,那么复选框的值为1,否则为0.如何用js判断复选框是否被选中,选中以后如何把值保存到数据库里(或者是如何将复选框的值传到form里) 在form里,有enable_snapshot字段,并且为int类型,默认值为0
bootstraptable-edit使用问题
![图片说明](https://img-ask.csdn.net/upload/201908/06/1565077495_685813.png) 外部的表格无法获取数据,检查contentType属性配置问题。 ``` $(function() { //初始化Table var oTable = new TableInit(); oTable.Init(); }); var TableInit = function() { var oTableInit = new Object(); //初始化Table oTableInit.Init = function() { $('#table').bootstrapTable({ url : 'list',//请求后台的URL(*) method : 'post',//请求方式(*) toolbar : '#toolbar',//工具按钮用哪个容器 striped : true,//是否显示行间隔色 cache : false,//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) pagination : true,//是否显示分页(*) sortable : false,//是否启用排序 sortOrder : "asc",//排序方式 queryParams : oTableInit.queryParams,//传递参数(*) sidePagination : "server",//分页方式:client客户端分页,server服务端分页(*) pageNumber : 1,//初始化加载第一页,默认第一页 pageSize : 10,//每页的记录行数(*) pageList : [ 10, 25, 50, 100 ],//可供选择的每页的行数(*) search : true,//是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大 contentType : "application/x-www-form-urlencoded", strictSearch : true, showColumns : true,//是否显示所有的列 showRefresh : true,//是否显示刷新按钮 minimumCountColumns : 2,//最少允许的列数 clickToSelect : true,//是否启用点击选中行 height : 700,//行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度 uniqueId : "id",//每一行的唯一标识,一般为主键列 showToggle : true,//是否显示详细视图和列表视图的切换按钮 cardView : false,//是否显示详细视图 detailView : false,//是否显示父子表 columns : [ { field : 'id', title : '编号' }, { field : 'name', title : '名字' }, { field : 'price', title : '价格' }, { field : 'operate', title : '操作', formatter : operateFormatter //自定义方法,添加操作按钮 }, ], rowStyle : function(row, index) { var classesArr = [ 'white', 'lightblue' ]; var strclass = ""; if (index % 2 === 0) {//偶数行 strclass = classesArr[0]; } else {//奇数行 strclass = classesArr[1]; } return { classes : strclass }; },//隔行变色 }); }; //得到查询的参数 oTableInit.queryParams = function(params) { var temp = {//这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的 limit : params.limit,//页面大小 //pageNumber: params.pageNumber,//页码 offset : params.offset }; return temp; }; return oTableInit; }; function operateFormatter(value, row, index) {//赋予的参数 return [ '<a href="#" style="color:blue;" οnclick="edit(' + row.id + ')">编辑</a>|', '<a href="#" style="color:red;" οnclick="del(' + row.id + ')">删除</a>', ].join(''); } ``` table-edit.js ``` (function($){ 'use strict'; $.extend($.fn.bootstrapTable.defaults, { editable: false }); var BootstrapTable = $.fn.bootstrapTable.Constructor, _init = BootstrapTable.prototype.init, _initBody = BootstrapTable.prototype.initBody, _onSort = BootstrapTable.prototype.onSort, _append = BootstrapTable.prototype.append, _initHeader = BootstrapTable.prototype.initHeader ; //添加编辑表格默认属性,如何edit设置为false时,表示该列不可编辑 $.extend(true,BootstrapTable.COLUMN_DEFAULTS,{ edit:{ type:'text'//目前只支持 文本:text 下拉:select 日期:date } }); BootstrapTable.prototype.init = function () { _init.apply(this, Array.prototype.slice.apply(arguments)); var that = this; that.prevEditRow = null;//上一次编辑的行 that.columns = {};//列配置信息 that.insertRowVal = {};//新插入行的默认值 that.enableAppend = true;//允许添加新行 if (that.options.editable) { var columnObj = this['getColumns'](); $.each(columnObj,function(i,obj){ $.each(obj,function(z,col){ if(!isNaN(col.fieldIndex) && col.fieldIndex >= 0){ if(col.checkbox)col.edit = false; that.columns['column'+col.fieldIndex] = col; that.insertRowVal[col.field] = ''; } }); }); //this.initEdit(); } }; /*BootstrapTable.prototype.initHeader = function(){ _initHeader.apply(this, Array.prototype.slice.apply(arguments)); this.$container.find('.fixed-table-header').addClass('success'); };*/ BootstrapTable.prototype.initBody = function () { var that = this; _initBody.apply(this, Array.prototype.slice.apply(arguments)); if (!that.options.editable) return; this.initEdit(); //如果列是下拉框,则转换值为对应的文本 $.each(that.columns,function(indx,col){ if(col.edit && col.edit.type == 'select'){ col.edit = $.extend({},$.fn.bootstrapSelect.defaults,col.edit); if(col.edit.data.length > 0){ that.$body.find('>tr').each(function(){ if(that.getData().length < 1)return true; var rowData = that.data[$(this).data('index')];//当前点击td所在行的数据 var $td = $(this).find('td').eq(col.fieldIndex); $.each(col.edit.data,function(i,data){ if(data[col.edit.valueField] == rowData[col.field]){ $td.html(data[col.edit.textField]); } }); }); } else if(col.edit.url){ $.ajax({ url:col.edit.url, type:'post', data:col.edit.paramsType == 'json' ? JSON.stringify(col.edit.params) : col.edit.params, dataType:'json', success: function(jsonLst) { col.edit.onLoadSuccess.call(this,jsonLst); that.$body.find('>tr').each(function(){ if(that.getData().length < 1)return true; var rowData = that.data[$(this).data('index')];//当前点击td所在行的数据 var $td = $(this).find('td').eq(col.fieldIndex); $.each(jsonLst,function(i,data){ if(data[col.edit.valueField] == rowData[col.field]){ $td.html(data[col.edit.textField]); } }); }); col.edit.data = jsonLst; col.edit.url = null; }, error: function(xhr, textStatus, errorThrown){ col.edit.onLoadError.call(this); col.edit.data = []; col.edit.url = null; throw col.field+' 列下拉框数据加载失败'; } }); } } }); }; //根据行号删除指定行 BootstrapTable.prototype.removeRow = function (rowNum) { var that = this; var len = that.options.data.length; if (isNaN(rowNum)){ return; } if(that.$body.find('.editable-select').data('index') != rowNum){ recover(that); } //删除数据 that.options.data.splice(rowNum,1); if (len === that.options.data.length){ return; } var oldClass = {};//保存被标记修改的样式 that.$body.find('>tr').each(function(indx){ if($(this).hasClass('editable-modify')){ if(indx > rowNum){ oldClass[indx-1] = 'editable-modify'; } else{ oldClass[indx] = 'editable-modify'; } } }); //this.prevEditRow = null; //this.$body.find('>tr').removeClass('editable-select'); that.initBody(); //将标记改变过行的样式从新设置回去 for(var key in oldClass){ that.$body.find('>tr').eq(key).addClass(oldClass[key]); } //this.initEdit(); //没有数据时给提示加上样式 if(that.getData().length < 1){ that.$body.find('>tr').addClass('no-records-found'); } }; BootstrapTable.prototype.append = function (){ var that = this; //if(!that.enableAppend)return; var oldClass = {};//保存被标记修改的样式 that.$body.find('>tr').each(function(indx){ if($(this).hasClass('editable-modify') || $(this).hasClass('editable-insert')){ oldClass[indx] = 'editable-modify'; } }); arguments[0] = $.extend({},that.insertRowVal,arguments[0]); _append.apply(this,Array.prototype.slice.apply(arguments)); if (that.options.editable){ //that.initEdit(); setTimeout(function (){ //将标记改变过行的样式从新设置回去 for(var key in oldClass){ that.$body.find('>tr').eq(key).addClass(oldClass[key]); } that.$body.find('>tr:last').addClass('editable-modify'); that.$body.find('>tr:last').addClass('editable-insert');//双重保险,防止在快速点击添加时,为给新增行设置editable-modify属性 that.$body.find('>tr:last').click(); },60); } }; BootstrapTable.prototype.onSort = function () { _onSort.apply(this, Array.prototype.slice.apply(arguments)); var that = this; if (that.options.editable) { this.initEdit(); } }; BootstrapTable.prototype.getData = function () { return (this.searchText || this.searchCallback) ? this.data : this.options.data; }; BootstrapTable.prototype.getColumns = function () { return this.options.columns; }; /** * 获取有被修改过行的值 */ BootstrapTable.prototype.getModiDatas = function (){ var that = this; var datas = []; that.$body.find('.editable-modify').each(function(){ if(that.data[$(this).data('index')]){ datas.push(that.data[$(this).data('index')]); } }); return datas; }; /** * 获取指定列的和,参数为列下标 */ BootstrapTable.prototype.getColTotal = function (num){ var retVal = 0; this.$body.find('>tr').each(function(){ var colNum = 0; if($(this).hasClass('editable-select')){ colNum = $(this).find('td').eq(num).find('input').val(); } else{ colNum = $(this).find('td').eq(num).html(); } if(!isNaN(colNum)){//是数字才做想加 retVal += Number(colNum); } }); return retVal; }; /** * 创建可编辑表格 */ BootstrapTable.prototype.initEdit = function(){ var that = this, data = this.getData(); //this.$body.find('> tr').unbind('click').on('click' //this.$body.delegate('>tr','click' this.$body.find('> tr').unbind('click').on('click',function(){ var $tr = $(this); if($tr.hasClass('editable-select') || data.length < 1 || $tr.hasClass('no-records-found')){ return; } $tr.removeClass('no-records-found'); recover(that); that.prevEditRow = $tr; $tr.addClass('editable-select');//给当前编辑行添加样式,目前样式为空只做标识使用 that.$body.find('> tr').not(this).removeClass('editable-select'); $tr.find('td').closest('td').siblings().html(function(i,html){ initTrClick(that,this); }); }); //鼠标点击事件 $(document).bind('mousedown',function(event){ var $target = $(event.target); if(!($target.parents().andSelf().is(that.$body)) && !($target.parents().andSelf().is($('.datetimepicker')))){ setTimeout(function () { recover(that); //that.prevEditRow = null; //that.$body.find('> tr').removeClass('editable-select'); },10); }; }); }; $.fn.bootstrapTable.methods.push('getColumns', 'getModiDatas','removeRow','getColTotal'); /** * 给tr添加点击事件 */ function initTrClick(that,_this){ that.enableAppend = true; var $td = $(_this); var $tr = $td.parent(); var rowData = that.data[$tr.data('index')];//当前点击td所在行的数据 var tdIndex = $tr.children().index($td);//当前点击的td下标 var tdOpt = that.columns['column'+tdIndex]; if(!tdOpt.edit || typeof tdOpt.edit != 'object'){ return ; } $td.data('field',tdOpt.field); if(!$td.data('oldVal')){ $td.data('oldVal',$.trim(rowData[tdOpt.field])); } var height = $td.innerHeight() - 3; var width = $td.innerWidth() - 2; $td.data('style',$td.attr('style'));//保存原来的样式 $td.attr('style','margin:0px;padding:1px!important;'); var placeholder = ''; if(tdOpt.edit.required == true){ placeholder = '必填项'; } var value = rowData[tdOpt.field] == null || rowData[tdOpt.field] == ''?'':rowData[tdOpt.field]; $td.html('<div style="margin:0;padding:0;overflow:hidden;border:solid 0px red;height:'+(height)+'px;width:'+(width)+'px;">' +'<input type="text" placeholder="'+placeholder+'" value="'+value+'" style="margin-left: 0px; margin-right: 0px; padding-top: 1px; padding-bottom: 1px; width:100%;height:100%">' +'</div>'); $td.width(width); var $input = $td.find('input'); if(!tdOpt.edit.type || tdOpt.edit.type == 'text'){ if(tdOpt.edit['click'] && typeof tdOpt.edit['click'] === 'function'){ $input.unbind('click').bind('click',function(event){ tdOpt.edit['click'].call(this,event); }); } if(tdOpt.edit['focus'] && typeof tdOpt.edit['focus'] === 'function'){ $input.unbind('focus').bind('focus',function(event){ tdOpt.edit['focus'].call(this,event); }); } $input.unbind('blur').on('blur',function(event){ if(tdOpt.edit['blur'] && typeof tdOpt.edit['blur'] === 'function'){ tdOpt.edit['blur'].call(this,event); } }); } else if(tdOpt.edit.type == 'select'){ $input.bootstrapSelect(tdOpt.edit); } else if(tdOpt.edit.type == 'date'){ $td.html('<div style="margin:0;padding:0;overflow:hidden;border:solid 0px red;height:'+(height)+'px;width:'+(width)+'px;" class="input-group date form_datetime" data-link-field="dtp_editable_input">' +'<input class="form-control" type="text" value="'+value+'">' +'<span class="input-group-addon"><span class="glyphicon glyphicon-th"></span></span>' +'</div>' +'<input type="hidden" id="dtp_editable_input" value="'+value+'"/>' ); that.$body.find('.form_datetime').datetimepicker({ weekStart: 1, todayBtn: 1, autoclose: 1, todayHighlight: 1, startView: 2, forceParse: 0, language:'zh-CN', format: 'yyyy-mm-dd hh:ii:ss', pickerPosition: 'bottom-left', showMeridian: 1 }); } } /** * 恢复tr,使之处于不可编辑状态 */ function recover(that){ var isModi = false;//判断行值是否变动过 if(that.prevEditRow != null){ that.prevEditRow.find('td').closest('td').siblings().html(function(i,html){ $(this).attr('style',$(this).data('style')); var textVal = $(this).find('input[type="text"]').val(); var hiddenVal = $(this).find('input[type="hidden"]').val(); if(typeof $(this).find('input[type="text"]').bootstrapSelect('getText') != 'object'){ $(this).find('input[type="text"]').bootstrapSelect('destroy'); } if(textVal != undefined){ if($(this).data('oldVal') != (hiddenVal?hiddenVal:$.trim(textVal)) && $(this).data('field')) { that.data[that.prevEditRow.data('index')][$(this).data('field')] = hiddenVal?hiddenVal:$.trim(textVal); isModi = true; } if(that.columns['column'+i].edit.required == true){ if(textVal == null || textVal == ''){ that.enableAppend = false; return '<span style="color:red;">必填项不能为空</span>'; } } return $.trim(textVal); } }); //新值跟旧值不匹配证明被改过 if(isModi || that.prevEditRow.hasClass('editable-insert')){ that.prevEditRow.addClass('editable-modify'); } else{ that.prevEditRow.removeClass('editable-modify'); } that.prevEditRow = null; that.$body.find('> tr').removeClass('editable-select'); } } })(jQuery); ``` 哪位大神能帮忙解决下
IE8及以下版本调试时提示 无法获取未定义或 null 引用的属性“style”
``` <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>checkbox的选中事件</title> <style type="text/css"> div{ width:200px; height:200px; border:1px solid #CCC; color:#00C;} table { width:400px; border:1px solid #999; border-collapse:collapse; } table tr { width:400px; height:100px; border:1px solid #999; } .select { display:none;} </style> <script type="text/javascript"> window.onload = function(){ var DEFAULT_VERSION = "8.0"; var browser = navigator.userAgent;//获取浏览器版本信息 var safariVersion; //alert(navigator.userAgent); if(browser.indexOf("MSIE")>0){//判断是否是IE浏览器 safariVersion = browser.match(/MSIE ([\d.]+)/)[1]; if(safariVersion <= DEFAULT_VERSION){ var aInput = getClassNames("select_tr","input"); var aTr = getClassNames("select","input"); }else{ var aInput = document.getElementsByClassName("select_tr"); var aTr = document.getElementsByClassName("select"); } }else{ var aInput = document.getElementsByClassName("select_tr"); var aTr = document.getElementsByClassName("select"); } for(var i=0;i<aInput.length;i++){ aInput[i].index = i; aInput[i].onclick = function(){ alert(this); if(this.checked){ aTr[this.index].style.display = "block"; }else{ aTr[this.index].style.display = "none"; } } } function getClassNames(classStr,tagName) { if(document.getElementsByClassName){//判断浏览器是否兼容getElementsByClassName属性 //浏览器兼容getElementsByClassName属性,则可直接使用document.getElementsByClassName return document.getElementsByClassName(classStr) }else{//浏览器不兼容getElementsByClassName的情况下 var nodes = document.getElementsByTagName(tagName),ret = []; for(i = 0; i < nodes.length; i++){ if(hasClass(nodes[i],classStr)){ ret.push(nodes[i]); } } return ret; } } function hasClass(tagStr,classStr){ var arr=tagStr.className.split(/\s+/ ); //这个正则表达式是因为class可以有多个,判断是否包含 for (var i=0;i<arr.length;i++){ if (arr[i]==classStr){ return true ; } } return false ; } } </script> </head> <body> <label><input type="checkbox" value="NBA" class="select_tr">NBA</label> <label><input type="checkbox" value="football" class="select_tr"">足球</label> <label><input type="checkbox" value="badminton" class="select_tr">羽毛球</label> <table> <tr> <td>main content</td> </tr> <tr class="select" id="first"> <td>NBA</td> </tr> <tr class="select" id="second"> <td>足球</td> </tr> <tr class="select" id="third"> <td>羽毛球</td> </tr> <tr> <td>others content</td> </tr> </table> </body> </html> ```
easyui搜索框查询回来的数据怎么显示出来啊
1.我现在问题是,在打开页面的时候,调用后台的一个方法,把表格所有的数据 显示在了datagrid上,现在想在页面加个搜索框,输入用户名,点击搜索的时 候,后台会根据前端传来的参数,调用另一个方法执行相关的查询语句,然后把数据返回给前端。 ===问题来了,前端接收到数据后,怎么显示在已经获取了所有数据的在datagrid上呢? 这我相关的代码 ``` <body> <script > $(function (){ var flag ; // 判断新增和修改方法 var url;//全局变量,存储点击对话框保存按钮后,提交请求的URL地址 $('#a').datagrid({ idField:'id',//只要创建数据表格 就必须要加 idField fitColumns:true,//宽度自适应 url:'/ssm/getOperator', //geiOperator会查出表里所有数据 checkOnSelect:true,//为false,当用户仅在点击该复选框的时候才会被选中或取消。 fitColumns: true, columns:[[ {field:'id',checkbox:true}, {field:'operator_id',title:'编号',width:100,halign:'center',align:'center'}, {field:'username',title:'账户',width:100,halign:'center',align:'center'}, {field:'password',title:'密码',width:100,halign:'center',align:'center'}, {field:'operator_name',title:'姓名',width:100,halign:'center',align:'center'} ]], pagination:true,//在底部显示分页 pageSize:'5',//每页显示多少个 pageList:[5,10,20], ``` ``` $('#btn3').click(function(){ var operator_name=document.getElementById('searchbtn').value; var operator={"operator_name":operator_name}; var jsonData= JSON.stringify(operator); $.ajax({ type: 'post' , url: "/ssm/findOperByName" , cache:false , data:jsonData, dataType:'json' , contentType : "application/json;charset=UTF-8", success:function(result){ //1 关闭窗口 /* $('#mydialog').dialog('close'); */ //2刷新datagrid /* $('#a').datagrid('reload'); */ /* $('#a').datagrid('clearSelections'); */ //获取表头数据成功后,使用easyUi的datagrid去生成表格 }, error:function(result){ alert("执行失败"); } }); ``` btn3就是我点击搜索的按钮。但搜索成功后数据不会显示在表格里 如果能解决,可以有偿
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
开源一个功能完整的SpringBoot项目框架
福利来了,给大家带来一个福利。 最近想了解一下有关Spring Boot的开源项目,看了很多开源的框架,大多是一些demo或者是一个未成形的项目,基本功能都不完整,尤其是用户权限和菜单方面几乎没有完整的。 想到我之前做的框架,里面通用模块有:用户模块,权限模块,菜单模块,功能模块也齐全了,每一个功能都是完整的。 打算把这个框架分享出来,供大家使用和学习。 为什么用框架? 框架可以学习整体
源码阅读(19):Java中主要的Map结构——HashMap容器(下1)
(接上文《源码阅读(18):Java中主要的Map结构——HashMap容器(中)》) 3.4.4、HashMap添加K-V键值对(红黑树方式) 上文我们介绍了在HashMap中table数组的某个索引位上,基于单向链表添加新的K-V键值对对象(HashMap.Node&lt;K, V&gt;类的实例),但是我们同时知道在某些的场景下,HashMap中table数据的某个索引位上,数据是按照红黑树
c++制作的植物大战僵尸,开源,一代二代结合游戏
    此游戏全部由本人自己制作完成。游戏大部分的素材来源于原版游戏素材,少部分搜集于网络,以及自己制作。 此游戏为同人游戏而且仅供学习交流使用,任何人未经授权,不得对本游戏进行更改、盗用等,否则后果自负。 目前有六种僵尸和六种植物,植物和僵尸的动画都是本人做的。qq:2117610943 开源代码下载 提取码:3vzm 点击下载--&gt; 11月28日 新增四种植物 统一植物画风,全部修
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成喔~) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
深度学习图像算法在内容安全领域的应用
互联网给人们生活带来便利的同时也隐含了大量不良信息,防范互联网平台有害内容传播引起了多方面的高度关注。本次演讲从技术层面分享网易易盾在内容安全领域的算法实践经验,包括深度学习图
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Python 编程实用技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法,并会持续更新。
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
"狗屁不通文章生成器"登顶GitHub热榜,分分钟写出万字形式主义大作
前言 GitHub 被誉为全球最大的同性交友网站,……,陪伴我们已经走过 10+ 年时间,它托管了大量的软件代码,同时也承载了程序员无尽的欢乐。 上周给大家分享了一篇10个让你笑的合不拢嘴的Github项目,而且还拿了7万+个Star哦,有兴趣的朋友,可以看看, 印象最深刻的是 “ 呼吸不止,码字不停 ”: 老实交代,你是不是经常准备写个技术博客,打开word后瞬间灵感便秘,码不出字? 有什么
推荐几款比较实用的工具,网站
1.盘百度PanDownload 这个云盘工具是免费的,可以进行资源搜索,提速(偶尔会抽风????) 不要去某站买付费的???? PanDownload下载地址 2.BeJSON 这是一款拥有各种在线工具的网站,推荐它的主要原因是网站简洁,功能齐全,广告相比其他广告好太多了 bejson网站 3.二维码美化 这个网站的二维码美化很好看,网站界面也很...
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
相关热词 如何提升c#开发能力 矩阵乘法c# c#调用谷歌浏览器 c# 去空格去转义符 c#用户登录窗体代码 c# 流 c# linux 可视化 c# mvc 返回图片 c# 像素空间 c# 日期 最后一天
立即提问