table根据所在列的td,获取所有行该列的值

$(document).on('click','.class',function){
var td=$(this);
var txt=td.text();
//根据这个td所在的列td.index()得到这个table所有行该列的值之和
}

我是动态生成的table,.class是设置的class属性,上面的代码是td的点击事件

3个回答

问题结束!已经做出来了,
for(var i=0;i<qg.length;i++){
var qgNum=0;
var j=0;
td.parents("table").find("tr").rach(function(){
if(j<4){
j++;
return true;
}
$(this).find('td:eq('+qg[i]+')').each(function(){
var num=$(this).text();
//计算2个数之和
qgNum=accAdd(num,qgNum);
})
})
alert(qgNum);
}

qg为要改的列的数组,accAdd为精确加法计算的方法。

showbo
支付宝加好友偷能量挖 $(document).on('click', '.class', function () { var sum = eval($(this).closest('table') .find('tr td:nth-child(' + (this.cellIndex + 1) + ')') .map(function () { return parseInt($(this).text()) || 0 }).get().join('+')); alert(sum) });
2 年多之前 回复
showbo
支付宝加好友偷能量挖 jqueyr用得太烂。。
2 年多之前 回复

根据所在列的td,获取所有行该列的值?

那给你几个资源吧:

jq插件:
http://www.jq22.com/

api:
http://jquery.cuishifeng.cn/

另外可以关注下vue,react,angularjs,这几个是未来趋势,还有es6,(http://es6.ruanyifeng.com)

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
新手求助关于根据选中的radio而获取同一行里面的所有td的值
求教,想根据选中的radio来获取该radio所在那一行里面的所有的td值(每个td里面的值要分别获取出来) 该怎么做呢? ``` <c:forEach items="${logoutAccountForm.accountList}" var="logoutList"> <tr height="55" class="table_centent_bj_color_b" > <td width="100" class=""><span class="radio_wrap"> <input type="radio" id="xh" name="xh" value="" /> <label for="xh" class="check"></label> </span></td> <td width="350" class="" id="accNo"><p>${logoutList.accNo} </p></td> <td width="200" class="" id="custName"><p>${logoutList.customer.custName} </p></td> <td width="300" class="" id="openBank"><p>${logoutList.openbank} </p></td> <td width="250" class="" id="openDate"><p>${logoutList.openDate} </p></td> </tr> </c:forEach> ```
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); ``` 哪位大神能帮忙解决下
Repeater 下数据获取问题
``` <table class="table table-hover table-bordered table-striped"> <asp:Repeater ID="rptArtList" runat="server"> <HeaderTemplate> <tr> <th style="width: 100px;"> 用户ID </th> <th style="width: 100px;"> 用户名称 </th> <th style="width: 60px;"> 所在城市 </th> <th style="width: 60px;"> 操作 </th> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td id="td1" runat="server"> <%# Eval("CustomerID")%> </td> <td> <%# Eval("Name")%> </td> <td> <%# Eval("CityName")%> </td> <td> <asp:LinkButton ID="LinkButton2" runat="server" CssClass="btn btn-primary" OnClientClick="return Preview();">更改组别</asp:LinkButton> </td> </tr> </ItemTemplate> </asp:Repeater> </table> ``` 原来只有3列 没有更改组别,现在需要多加这个功能,更改时会弹出窗口 ![图片说明](https://img-ask.csdn.net/upload/201504/14/1428997890_537138.png) 现在图片中的ListID我已经拿到了,我想要再后台获取 当前行的 CustomerID 去数据库判断 具体数据 然后做修改,后台如何才能拿到当前行的CustomerID呢
求解关于html input标签中利用pattern属性和正则表达式没用的问题
``` <html> <head> <title>查看/修改</title> <script language="JavaScript" src="script/trim.js"></script> <script language="JavaScript"> function check(){ document.all.mf.submit(); } </script> </head> <body bgcolor="#EBF5FD"> <jsp:useBean id="userBean" class="wyf.zrk.UserBean" scope="session"/> <table width="100%" height="44" bgcolor="#206AB3"> <tr align="center"><td> <font color="#FFFFFF" size="5">电表信息管理</font> <font color="#FFFFFF" size="2">--电表信息添加</font> </td></tr> </table> <table> <tr><td><a href="javascript:history.back()"> <img border="0" src="img/back.jpg"/></a> </td></tr> </table> <hr color="black" size="1"/> <form action="ManageServlet" method="post" id="mf"> <table width="80%" border="0" cellspacing="1" bgcolor="black" align="center"> <tr bgcolor="white"> <td align="center">管理员姓名:</td> <td><input name="name" id="name" /></td> </tr> <tr bgcolor="white"> <td align="center">居住地址:</td> <td> <select name="address"> <% //获取WebApplicationContext WebApplicationContext wac= WebApplicationContextUtils.getWebApplicationContext(this.getServletContext()); DButil db = (DButil)wac.getBean("DButil"); List<String> address = db.getHouseAddress(); for(String name:address){ %> <option value="<%= name %>" ><%= name %></option> <% } %> </select> </td> </tr> <tr bgcolor="white"> <td align="center">电表类型:</td> <td><input name="mtype" id="mtype" /></td> </tr> <tr bgcolor="white"> <td align="center"> 电表型号:</td> <td><input name="machine" id="machine" /></td> </tr> <tr bgcolor="white"> <td align="center">运营商:</td> <td><input name="company" id="company" /></td> </tr> <tr bgcolor="white"> <td align="center">安装时间:</td> <td><input name="cometime" id="cometime" /></td> </tr> <tr bgcolor="white"> <td align="center">所在区域:</td> <td><input name="region" id="region" /></td> </tr> </table> <table align="center"> <tr> <td><img border="0" src="img/xg.gif" id="xg" onclick="JavaScript:check()" style="cursor:hand" onmouseover="document.all.xg.src='img/xga.gif'" onmouseout="document.all.xg.src='img/xg.gif'" onmouseup="document.all.xg.src='img/xga.gif'" onmousedown="document.all.xg.src='img/xgb.gif'"/></td> <td><img border="0" src="img/cze.gif" id="cz" onclick="JavaScript:document.all.mf.reset()" style="cursor:hand" onmouseover="document.all.cz.src='img/czd.gif'" onmouseout="document.all.cz.src='img/cze.gif'" onmouseup="document.all.cz.src='img/czd.gif'" onmousedown="document.all.cz.src='img/czc.gif'"/></td> </tr> </table> <input type="hidden" name="action" value="adduser"/> </form> </body> </html> ``` 我想在 安装时间 那里的input后面添加确认格式为yyyy-mm-dd的正则表达式,上但加上去后却会直接跳过,求大神帮忙,顺便再求大神解惑一下javascript的check()方法和input的submit属性的区别,我这个例子可以改成用submit的方法吗,我现在无论怎么加正则表达式,我下面点击下面的图片都会运行check方法直接跳转,我该怎么处理才好?
点击删除的时候,能找到当前条的数据,删除
##![图片说明](https://img-ask.csdn.net/upload/201907/17/1563334595_861315.jpg) ## 这个数据不是后台给的,是选择填入的,就像录入一样 除了第一条,其它的都是模板字符串创建的,我在列表后面加入的botton,但是不知道如何获取按钮所在的这一条数据,我也写了一个方法 这是jq,,.tbody_1为模板字符串的名称 document.getElementById("botton2").onclick = function () { $(".tbody_1:eq()").remove(); }; ``` <div class="layui-input-block"> <h3 id="forms4"><span><img src="images/down.png" id="forms4_"/></span>仪器、设备及车辆清单</h3> <div id="apply3"> <table class="layui-table" lay-even="" lay-skin="row"> <colgroup> <col width="90"> <col width="140"> <col width="140"> <col width="90"> <col width="60"> <col width="140"> <col width="200"> <col width="200"> <col width="200"> <col width="70"> </colgroup> <thead> <tr style="background-color: rgb(82, 131, 223);color:#fff"> <th>序号</th> <th>类型</th> <th>仪器、设备名称</th> <th>型号</th> <th>数量</th> <th>用途</th> <th>购置日期</th> <th>检定日期</th> <th>备注</th> <th></th> </tr> </thead> <div> <tbody> <tr > <td> <div class="layui-inline"> <div class="layui-input-inline"> 1 </div> </div> </td> <td> <div class="layui-inline"> <div class="layui-input-inline"> <select name="quiz"> <option value="">请选择</option> <option value="接触粉尘类">接触粉尘类</option> <option value="接触物理因素类">接触化学因素类</option> <option value="接触粉尘类">接触物理因素类</option> <option value="接触物理因素类">接触生物因素类</option> <option value="接触粉尘类">接触放射因素类</option> <option value="接触物理因素类">其它类(特殊作业等)</option> </select> </div> </div> </td> <td> <div class="layui-inline"> <div class="layui-input-inline"> <select name="quiz"> <option value="">请选择</option> <option value="三联式观片灯">三联式观片灯</option> <option value="心电图机">心电图机</option> </select> </div> </div> </td> <td> <div class="layui-inline"> <div class="layui-input-inline"> <input type="text" name="model" lay-verify="" autocomplete="off" class="layui-input"> </div> </div> </td> <td>1</td> <td> <div class="layui-inline"> <div class="layui-input-inline"> <input type="text" name="aim" lay-verify="" autocomplete="off" class="layui-input"> </div> </div> </td> <td> <div class="layui-input-inline"> <input type="text" name="buyed" id="buyed" lay-verify="buyed" placeholder="年-月-日" autocomplete="off" class="layui-input"> </div> </td> <td> <div class="layui-input-inline"> <input type="text" name="checked" id="checked" lay-verify="checked" placeholder="年-月-日" autocomplete="off" class="layui-input"> </div> </td> <td> <div class="layui-inline"> <div class="layui-input-inline"> <input type="text" name="remarks" lay-verify=" autocomplete="off" class="layui-input"> </div> </div> </td> <!-- 删除按钮 --> <td style="border-color:transparent !important;border-bottom:1px solid transparent !important" id="table11"> <div class="layui-inline"> <div class="layui-input-inline"> <button type="button" class="layui-btn layui-btn-sm layui-btn-danger botton2" id="botton2">删除</button> </div> </div> </td> </tr> <!-- <td style="border-color:transparent !important;border-bottom:1px solid transparent !important"> <div class="layui-inline"> <div class="layui-input-inline"> <button type="button" class="layui-btn layui-btn-primary layui-btn-sm layui-btn-add" onclick="add()">继续添加</button> </div> </div> </td> --> </tbody> </div> </table> </div> <!-- 继续增加按钮 --> <div class="layui-form-item continue"> <div class="layui-inline"> <div class="clearfix"> <!-- <span class="square" onclick="add()" style="text-align:center"><img src="images/continue.png" style=""/></span> --> <button type="button" class="layui-btn layui-btn-primary layui-btn-sm layui-btn-add square" onclick="add()"><img src="images/continue.png" style=""/></button> <span class="words">继续添加</span> <!-- <span class="words">继续添加</span> --> </div> </div> </div> <div> <div id="test1"></div> </div> </div> ```
jquery ajax 导入json数据进行修改操作
json数据 test.txt [ {"XH":1,"YWName":"业务1","SName":"系统1","QDName":"渠道1","HJNumber":5}, {"XH":2,"YWName":"业务2","SName":"系统2","QDName":"渠道2","HJNumber":6}, {"XH":3,"YWName":"业务3","SName":"系统3","QDName":"渠道3","HJNumber":7} ] jquery ajax获取方法 $('#button').click(function(){ $("#tab").hide(); $("table").remove(); $.ajax({ type:"GET", url:"test.txt", dataType:"json", success:function(data){ var $table=$('<table border="1" id="table"></table>'); var $head =$('<tr><td>序号</td><td>业务名称</td><td>系统名称</td><td>渠道名称</td><td>环节数</td><td>操作</td></tr>'); $table.append($head); for(var i=0;i<data.length;i++){ var row = data[i]; var $tr = $('<tr class="row" ></tr>'); var XH= $('<td width="40px">'+row['XH'] + '</td>'); var YWName= $('<td width="80px">'+row['YWName'] + '</td>'); var SName= $('<td width="80px">'+row['SName'] + '</td>'); var QDName= $('<td width="80px">'+row['QDName'] + '</td>'); var HJNumber= $('<td width="60px">'+row['HJNumber'] + '</td>'); $tr.append(XH).append(YWName).append(SName).append(QDName).append(HJNumber).append('<td width="60px"><input type="button" id="" value="修改"/></td>'); $table.append($tr); } $('#chen').append($table); } }); return false; }); 需求:点击生成表格中的修改,对所在行的数据进行修改,加载新页面或者弹框都可以!!! 求各位大神指点迷津,小猴在这里谢过了!![图片说明](https://img-ask.csdn.net/upload/201603/24/1458804890_82349.png)
调试了一下午,也没发现问题所在
![图片说明](https://img-ask.csdn.net/upload/201507/03/1435911315_424746.png) 这些代码是从前台获取controller里的方法获取数据,然后赋值给div标签并进行排版 结果运行变成了这样: ![图片说明](https://img-ask.csdn.net/upload/201507/03/1435911394_862543.png) td标签没有循环进入table tr 里,而是和id为dlv的《div》标签并列了,请问是哪里出了问题,前台后台调试都很正常,就是排版不行
关于网络客服的疑问。
<p>今天偶然看到sun的网站(https://cn.sun.com/secure/offers/details/opensource_soa/thankyou.jsp)上有一个“现在给我来电”的连接。<br>他的功能是让用户主动发起一个语言支持请求。<br>我想这个部分sun会怎么去实现呢?<br><br>我能够想到的方式有两种:<br>1、Sun肯定会有一个呼叫中心。</p> <table class="quote_title" border="2"> <caption>方式一</caption> <tbody> <tr> <td>用户</td> <td>网站系统</td> <td>呼叫中心系统</td> <td>座席</td> </tr> <tr> <td>网站上发出一个“现在给我电话”的请求。</td> <td>向呼叫中心座席系统发送一个请求。请求包括用户当前所在的网页(为了能够更准确的提供帮助)、用户输入的电话号码、姓名等信息。</td> <td>接受到信息,经过特定的路由算法。获取到一个空闲的或负载轻的座席。把请求显示到该座席的工作列表中。</td> <td></td> </tr> <tr> <td></td> <td></td> <td></td> <td>座席外呼该请求中的电话。用户接听电话</td> </tr> <tr> <td>接听电话,获得帮助</td> <td></td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> <td></td> <td>表记已经处理</td> </tr> </tbody> </table> <p><br></p> <table class="bbcode" border="2">   <p>方式二</p> <tbody> <tr> <td>              用户 <br> </td> <td> 网站系统                      </td> <td> 呼叫中心系统    <br> </td> <td>呼叫座席</td> </tr> <tr> <td> 网站上发出一个“现在给我电话”的请求</td> <td>向呼叫中心座席系统发送一个请求。请求包括用户当前所在的网页(为了能够更准确的提供帮助)、用户输入的电话号码、姓名等信息。</td> <td>发起一个电话呼叫进入 呼叫中心的电话系统(具体怎么发起我就不太清楚了。可能类使用“飞信”中的语音聊天的那种方式)</td> <td></td> </tr> <tr> <td></td> <td></td> <td>由呼叫接入模块(ACD)进行转接。把电话打倒特定 的座席上</td> <td>座席接电话</td> </tr> <tr> <td></td> <td></td> <td>加入请求用户的电话号码</td> <td></td> </tr> <tr> <td>用户接听电话</td> <td></td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> <td></td> <td>标记电话已经处理</td> </tr> </tbody> </table> <p><br><br>个人猜想,其中肯定不正确。<br>高手给点指点。谢谢了先</p>      <p> </p><br /><strong>问题补充:</strong><br />to:lixjluck <br />&nbsp; 谢谢你的回复。你还知道有那些厂商提供这种服务阿。谢谢了先!!
JQ中easyui显示$ is not defined
富文本编辑器出现$获取不到值的情况,使用document.getElementById()方法获取的值为空,不知道这是怎么一回事,望大家帮忙看以下问题所在。 <head> <title></title> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> <script type="text/javascript" src="~/Scripts/jquery-1.11.3.js"></script> <script type="text/javascript" src="~/Scripts/jquery-1.11.3.min.js"></script> <script type="text/javascript" src="~/Scripts/jquery.easyui-1.4.5.js"></script> <script type="text/javascript" src="~/Scripts/jquery.easyui-1.4.5.min.js"></script> <link rel="stylesheet" type="text/css" href="~/Content/themes/icon.css" /> <link rel="stylesheet" type="text/css" href="~/Content/themes/default/easyui.css" /> <script type="text/javascript" src="~/Scripts/locale/easyui-lang-zh_CN.js"></script> <script type="text/javascript" charset="utf-8" src="ueditor.config.js"></script> <script type="text/javascript" charset="utf-8" src="ueditor.all.min.js"> </script> <script type="text/javascript" charset="utf-8" src="lang/zh-cn/zh-cn.js"></script> <style type="text/css"> div{ width:100%; } </style> </head> <body> <div> <h1>完整demo</h1> <table> <tr> <td>标题</td> <td><input id="biaoti" class="easyui-textbox" ></td> </tr> <tr> <td>作者</td> <td><input id="zuozhe" class="easyui-textbox"></td> </tr> <tr> <td>创建时间</td> <td><input id="chuangjian" class="easyui-textbox"></td> </tr> <tr> <td style="text-align:left;">新闻内容:</td> </tr> </table> <script id="editor" type="text/plain" style="width:1024px;height:500px;"><!--文本编辑部分--> </script> </div> <div> <button style="width:80px;height:30px;" onclick="funFabu()"> 发布</button> </div> <script type="text/javascript" charset="utf-8"> function funFabu() { var va = $("#biaoti").textbox('getText'); alert(va); } </script> </body>
firefox offset问题
最近在做一个在线画table的东东,javascript实现。 在做一些算法时,需要用到offsetLeft,offsetWidth等一些属性,这些东东在ie下用得很好,但是到了firefox出了些问题。 简单描叙下: [code="java"] function testThisOffset(o){ if(o.tagName == 'TD') o=o.parentNode; var warnings =""; for(var q=0;q<o.cells.length;q++){ var oTd = o.cells[q]; warnings +="**************\n"; warnings +=" cell "+q+":"+oTd.offsetLeft+","+oTd.offsetWidth+"\n"; } alert(warnings); } [/code] 打印一行中,每个单元格的offsetLeft以及offsetWidth值。 firefox中,出现了如下值: [code="java"] ************** cell 0:1,140 // 0为cellIndex,1为该单元格offsetLeft,140为该单元格offsetWidth ************** cell 1:141,140 ************** cell 2:281,140 ************** [b]cell 3:420,140[/b] [/code] cell 0,1,2没问题,但是cell 3出现了问题,因为其 offsetLeft值为420 是小于cell2的281+140的, 问:这是为何了,有什么办法可以保:nextCell.offsetLeft>=cell.offsetLeft+cell.offsetWidth? [b]问题补充:[/b] ps1: 三楼提供的方法我早已尝试,数据还是存在类似的问题, [b]问题补充:[/b] ps2.真是头疼啊 表格中的同一列竟然也有offsetLeft不同的情况 IE中堪称完美,到了firefox竟然这么多问题. firefox真的比IE好吗? [b]问题补充:[/b] 多谢三楼同志的关注,我也看了文档。 有如下: [b]That is to say, Firefox 2 includes any border width of the offsetParent element when calculating offsetLeft whereas Firefox 3 ignores this setting. [/b] 我的是firefox3,所以应该是把offsetparent的border忽略了 这个javaeye现在搞成这样了,发帖都不容易了 诶 [b]问题补充:[/b] 不知道有解决办法没 不然就只能采取一个不是办法的办法 把两个offsetLeft之间绝对值<=1的 就算相等了 不过这样感觉 很别扭 继续求好的方法 [b]问题补充:[/b] 我的这个没有涉及到div 纯table td 有style [b]问题补充:[/b] 我觉得可能不是获取值的方法出问题了 可能是firefox本身的问题了 现在是两个td的相对比较, 如果三楼同学的 加上offsetParent的boader,这两个都要加上啊,这两个相邻td同一个offsetParent 所以加上后虽然单个绝对位置值变化了,但是两个各之间相对值还是没变地 依然是: 前一个Td的offsetLeft+前一个TD的offsetWidth大于后一个td的offsetLeft 莫名其妙的问题啊 ie chrome都是等于或者小于的说 就firefox出现大于 [b]问题补充:[/b] 我觉得可能不是获取值的方法出问题了 可能是firefox本身的问题了 现在是两个td的相对比较, 如果三楼同学的 加上offsetParent的boader,这两个都要加上啊,这两个相邻td同一个offsetParent 所以加上后虽然单个绝对位置值变化了,但是两个各之间相对值还是没变地 依然是: 前一个Td的offsetLeft+前一个TD的offsetWidth大于后一个td的offsetLeft 莫名其妙的问题啊 ie chrome都是 等于或者小于的说 就firefox出现 大于 [b]问题补充:[/b] tO 三楼同学: 这个table是用js动态产生地,可以增删行列以及拆分合并等等。 里面有几个算法要用到offsetLeft以及offsetWidth来判断单元格之间的位置才能决定下一步操作,比如增加一列时候(考虑非常不规则table情况) 我提的情况并不是每次都出现,可能在连续一些操作后(如增加列)若干次后出现。 恩 我尝试把错误结果提交下 [b]问题补充:[/b] 把出现问题的页面提交了 error.html页面 注意用firefox打开,点击单元格即可,里面的js函数为自己加入 [b]问题补充:[/b] 呵呵 多谢三楼同志的解答 至少晓得问题所在了 虽然我要求的效果是 : border-collapse : collapse 如果是 separate 边框太粗 不过还是散分吧 恭喜发财
C#请问如何控制器如何获取选择值进行有条件查询,本人初学,希望大神帮忙!希望写详细点,感谢!
public class C_F_BuyCertController : Controller { public ActionResult Getlist( ) { string ConnectString = "data source=172.16.60.144/orcl;User Id=yzd4hub;Password=yzd4hub;"; OracleConnection conn = new OracleConnection(ConnectString);//Data Source后面跟数据库的名字,User ID为用户名,Password为密码 try { conn.Open(); string province=Request["province"]; string city = Request.Form["city"]; string county = Request.Form["county"]; string sql = "select a.c_id,a.buy_id from c_f_buycert a where a.province=:province and a.city=:city and a.county=:county"; OracleCommand cmd = new OracleCommand(sql, conn); OracleDataAdapter oda = new OracleDataAdapter(cmd); DataTable dt = new DataTable(); oda.Fill(dt); List<C_F_BuyCert> modellist = new List<C_F_BuyCert>(); int rowscount = dt.Rows.Count; if (rowscount > 0) { C_F_BuyCert buycert; for (int n = 0; n < rowscount; n++) { buycert = new C_F_BuyCert(); buycert.C_Id = dt.Rows[n]["C_ID"].ToString(); buycert.Buy_Id = dt.Rows[n]["BUY_ID"].ToString(); modellist.Add(buycert); } } ViewData.Add("list", modellist); return View(); } finally { conn.Close(); } } } } @model IEnumerable<WebApplication1.Models.C_F_BuyCert> @{ViewBag.Title = "Getlist";} <script type="text/javascript" src="~/Scripts/js/jquery.min.js"></script> <script type="text/javascript" src="~/Scripts/js/dateRange.js"></script> <script type="text/javascript" src="~/Scripts/js/monthPicker.js"></script> <link rel="stylesheet" type="text/css" href="~/Content/dateRange.css" /> <link rel="stylesheet" type="text/css" href="~/Content/monthPicker.css" /> <script type="text/javascript" src="~/Scripts/js/area.js"></script> <div class="formset"> <table align="center" border="1"> <form method=POST action="/Controllers/C_F_BuyCertController/Getlist" name="form1"> <dl> <dt>查询购买事实</dt> <dd> <div class="editor-label"> 所在省: </div> <div class="editor-field"> <select id="province" name="province"></select> </div> </dd> <dd> <div class="editor-label"> 所在市: </div> <div class="editor-field"> <select id="city" name="city"></select> </div> </dd> <dd> <div class="editor-label"> 所在区县: </div> <div class="editor-field"> <select id="county" name="city"></select> </div> </dd> <dd> <input id="Submit1" type="submit" value="查询" /> <input id="Reset1" type="reset" value="重置" /> </dd> </dl> </form> </table> </div> <div class="formset"> <table align="center" border="1"> <tr> <th>C_Id</th> <th>Buy_Id</th> </tr> @{ var list = ViewData["list"] as List<WebApplication1.Models.C_F_BuyCert>; foreach (var item in list) { <tr> <td>@item.C_Id</td> <td>@item.Buy_Id</td> </tr> } }</table></div>
如何实现js同一页面的值的传递,希望热心大佬帮助一下我,菜鸟实习生,没有c币。。。。。。。。
我现在在做一个退伍军人就业信息管理的模块,现在我要和另一模块退伍军人基本信息连接到一起,基本信息里面没有这个用户我就无法添加就业信息,现在我要做的是点击就业信息模块主界面点击添加信息按钮,跳转到如下界面![图片说明](https://img-ask.csdn.net/upload/201905/05/1557026572_514791.jpg), 我需要在搜索框输入用户名搜索姓名查询基本信息表内有无该用户,有该用户则会显示在下方,如图![图片说明](https://img-ask.csdn.net/upload/201905/05/1557026823_184457.jpg) 现在我所想要问的就是,我点击这一条用户信息的确定按钮,要在下方显示的就业信息添加表单里面显示所选的这条基本信息的用户名,如图![图片说明](https://img-ask.csdn.net/upload/201905/05/1557027065_102023.jpg) 我的问题就是不知道怎么传,上面的查询显示信息我是调用的基本信息的那个主页面查询所有的方法 ``` /** * 用户基本信息查询 */ public String infoList() throws Exception { try { if (pageSize == null) { pageSize = 10; } PageUtil pageUtil = new PageUtil(request); pageUtil.setPageSize(pageSize); // 获取分页的参数 totalCount = informationService.getTotalCount(); // 获取分页的参数 pageUtil.setRsCount(totalCount); pageSize = pageUtil.getPageSize(); int pageCount = pageUtil.getPageCount(); int currentPage = pageUtil.getCurrentPage(); // 产生分页的工具条 pageTool = pageUtil.createPageTool(PageUtil.Text); //从基础信息读取所有基础信息 infoList = informationService.getAll(currentPage, pageSize,name); System.out.println(infoList+"##############################################################"); } catch (RuntimeException e) { e.printStackTrace(); } return "infoList"; } ``` 然后项目用的是ssh框架,公司技术比较老,大佬莫笑,页面请求跳转 ``` @ParentPackage(value = "struts-default") @Namespace(value = "/") @Action(value = "employAction", results = { @Result(name = "list", location = "/admin/system/employ/employ_list.jsp"), @Result(name = "add", location = "/admin/system/employ/employ_add.jsp"), @Result(name = "edit", location = "/admin/system/employ/employ_edit.jsp"), @Result(name = "infoList",location = "/admin/system/employ/employ_add.jsp"), }) ``` 然后是action的全部,写的比较乱 ``` package com.gyes.employ.action; import java.io.PrintWriter; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.jfree.data.DataUtilities; import org.springframework.beans.factory.annotation.Autowired; import com.gyes.currency.util.BaseAction; import com.gyes.currency.util.DateUtil; import com.gyes.currency.util.GsonUtil; import com.gyes.currency.util.JsonUtil; import com.gyes.currency.util.MessageBean; import com.gyes.currency.util.PageUtil; import com.gyes.employ.bean.Employ; import com.gyes.employ.service.EmployService; import com.gyes.system.dept.bean.Dept; import com.gyes.system.dept.service.DeptService; import com.gyes.system.dictionary.bean.Dict; import com.gyes.system.dictionary.serivce.DictService; import com.gyes.system.information.action.InformationAction; import com.gyes.system.information.bean.Information; import com.gyes.system.information.service.InformationService; import com.gyes.system.information.service.impl.InformationServiceImpl; import com.gyes.system.user.bean.User; /** * 部门action * * @author Administrator * */ @ParentPackage(value = "struts-default") @Namespace(value = "/") @Action(value = "employAction", results = { @Result(name = "list", location = "/admin/system/employ/employ_list.jsp"), @Result(name = "add", location = "/admin/system/employ/employ_add.jsp"), @Result(name = "edit", location = "/admin/system/employ/employ_edit.jsp"), @Result(name = "infoList",location = "/admin/system/employ/employ_add.jsp"), }) public class EmployAction extends BaseAction{ @Autowired private EmployService employService; @Autowired private DictService dictService; @Autowired private InformationService informationService; private Employ employ; private String[] ids; private List<Employ> list; private String name; private Information information; //基础信息集合 private List<Information> infoList; private Map<String, Object> map = new HashMap<String, Object>(); // 显示数 private Integer pageSize; private Integer totalCount; private String pageTool; private Integer employId; // 字典中的性别集合 private List<Dict> employwayList; private String informationId; @Override public String execute() throws Exception { return null; } /** * 分页查询所有用户(list) * * @return * @throws Exception */ public String list() throws Exception { try { if (pageSize == null) { pageSize = 10; } PageUtil pageUtil = new PageUtil(request); pageUtil.setPageSize(pageSize); // 获取分页的参数 totalCount = employService.getTotalCount(); // 获取分页的参数 pageUtil.setRsCount(totalCount); pageSize = pageUtil.getPageSize(); int pageCount = pageUtil.getPageCount(); int currentPage = pageUtil.getCurrentPage(); // 产生分页的工具条 pageTool = pageUtil.createPageTool(PageUtil.Text); list = employService.getAll(currentPage, pageSize,name); } catch (RuntimeException e) { e.printStackTrace(); } return "list"; } /** * 增加就业信息 */ public String add() throws Exception { employ = employService.getEmploy(employ); //从数据字典读取就业方式 employwayList=dictService.getDictList("dic_employway"); return "add"; } /** * 用户基本信息查询 */ public String infoList() throws Exception { try { if (pageSize == null) { pageSize = 10; } PageUtil pageUtil = new PageUtil(request); pageUtil.setPageSize(pageSize); // 获取分页的参数 totalCount = informationService.getTotalCount(); // 获取分页的参数 pageUtil.setRsCount(totalCount); pageSize = pageUtil.getPageSize(); int pageCount = pageUtil.getPageCount(); int currentPage = pageUtil.getCurrentPage(); // 产生分页的工具条 pageTool = pageUtil.createPageTool(PageUtil.Text); //从基础信息读取所有基础信息 infoList = informationService.getAll(currentPage, pageSize,name); System.out.println(infoList+"##############################################################"); } catch (RuntimeException e) { e.printStackTrace(); } return "infoList"; } /** * 同一页面传递用户基本信息的姓名 */ public String getInformationName() throws Exception{ Information list=informationService.getById(informationId); System.out.println(list+"kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"); return list.getInformationname(); } /** * 保存新增内容 * * @return * @throws Exception */ public String save() throws Exception { try { employ.setCrateTime(DateUtil.getSysDateStr()); Dict dic = new Dict(); dic.setDictId(employ.getEmployway_id()); Dict dict = dictService.getById(dic); employ.setEmployway_id(dict.getDictId()); employ.setEmployWay(dict.getValue()); employService.insertEmploy(employ); map.put("success", true); } catch (Exception e) { e.printStackTrace(); map.put("success", false); map.put("message", e.getMessage()); } GsonUtil.writeToResponse(map, false); return NONE; } /** * 进入修改 * * @return */ public String update() throws Exception { employ = employService.getById(employ.getEmployId()); //从数据字典读取就业方式 employwayList=dictService.getDictList("dic_employway"); return "edit"; } /** * 保存修改后数据 * * @return */ public String saveEditEmploy() throws Exception { try { employ.setModifyTime(DateUtil.getSysDateStr()); Dict dic = new Dict(); dic.setDictId(employ.getEmployway_id()); Dict dict = dictService.getById(dic); employ.setEmployway_id(dic.getDictId()); employ.setEmployWay(dict.getValue()); employService.updateEmploy(employ); map.put("success", true); } catch (Exception e) { e.printStackTrace(); map.put("success", false); map.put("message", e.getMessage()); } GsonUtil.writeToResponse(map, false); return NONE; } /** * 判断用户名是否存在 * * @return */ public String AjaxName() throws Exception { MessageBean messageBean = new MessageBean(); messageBean.setFlag(false); List<Information> data = informationService.getInformationList(employ.getEmployName()); if (data.size() > 0) { messageBean.setFlag(true); } PrintWriter out = response.getWriter(); out.print(JsonUtil.objectToJson(messageBean)); return NONE; } /* * 删除部门 */ public String delete() throws Exception { try { employService.deleAbso(ids); map.put("success", true); } catch (Exception e) { e.printStackTrace(); map.put("success", false); map.put("message", e.getMessage()); } GsonUtil.writeToResponse(map, false); return NONE; } public Integer getEmployId() { return employId; } public void setEmployId(Integer employId) { this.employId = employId; } public EmployService getEmployService() { return employService; } public void setEmployService(EmployService employService) { this.employService = employService; } public DictService getDictService() { return dictService; } public void setDictService(DictService dictService) { this.dictService = dictService; } public Employ getEmploy() { return employ; } public void setEmploy(Employ employ) { this.employ = employ; } public List<Employ> getList() { return list; } public void setList(List<Employ> list) { this.list = list; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Map<String, Object> getMap() { return map; } public void setMap(Map<String, Object> map) { this.map = map; } public Integer getPageSize() { return pageSize; } public void setPageSize(Integer pageSize) { this.pageSize = pageSize; } public Integer getTotalCount() { return totalCount; } public void setTotalCount(Integer totalCount) { this.totalCount = totalCount; } public String getPageTool() { return pageTool; } public void setPageTool(String pageTool) { this.pageTool = pageTool; } public String[] getIds() { return ids; } public void setIds(String[] ids) { this.ids = ids; } public List<Dict> getEmploywayList() { return employwayList; } public void setEmploywayList(List<Dict> employwayList) { this.employwayList = employwayList; ``` ``` } public List<Information> getInfoList() { return infoList; } public void setInfoList(List<Information> infoList) { this.infoList = infoList; } public InformationService getInformationService() { return informationService; } public void setInformationService(InformationService informationService) { this.informationService = informationService; } public Information getInformation() { return information; } public void setInformation(Information information) { this.information = information; } } ``` 最后是添加页面的代码 ``` <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib uri="/struts-tags" prefix="s"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!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>菜单增加</title> <link href="${pageContext.request.contextPath}/admin/css/box_css.css" rel="stylesheet" type="text/css" /> <link href="${pageContext.request.contextPath}/admin/css/content_css.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="${pageContext.request.contextPath}/admin/script/jquery.js"></script> <link rel="stylesheet" href="${pageContext.request.contextPath}/admin/css/common.css" type="text/css"/> <script type="text/javascript" src="${pageContext.request.contextPath}/admin/script/common.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath}/admin/js/ui.js"></script> <link href="${pageContext.request.contextPath}/admin/css/style.css" rel="stylesheet" /> <script language="javascript"> function checkEmployName(){ var formData = jQuery("#form1").serializeArray(); var saveURL = "<%=path%>/employAction!AjaxName?date="+new Date()+""; jQuery.post(saveURL,formData,function(jsonData){ var message = jsonData.message; var flag = jsonData.flag; if (flag == true){ document.getElementById('employName').value=''; mizhu.alert('', '用户名已经存在,请重新填写!',''); } },"json"); } function save(){ var employName=document.getElementById("employName"); if(employName.value==''){ mizhu.alert('', '用户名称不能为空',''); return false; } var employIndustry=document.getElementById("employIndustry"); if(employIndustry.value==''){ mizhu.alert('', '从事行业不能为空',''); return false; } var employ_workTime=document.getElementById("employ_workTime"); if(employ_workTime.value==''){ mizhu.alert('', '工作年限不能为空',''); return false; }else if(employ_workTime.value>=100){ mizhu.alert('', '工作年限请输入小于100的数字!!!!',''); return false; } var employWay=document.getElementById("employWay"); if(employWay.value==''){ mizhu.alert('', '就业方式必须选择!!!',''); return false; } var eduName=document.getElementById("eduName"); if(eduName.value==''){ mizhu.alert('', '教育机构名称不能为空',''); return false; } var companyName=document.getElementById("companyName"); if(companyName.value==''){ mizhu.alert('', '公司名称不能为空',''); return false; } var formData = jQuery("#form1").serializeArray(); var saveURL = "<%=path%>/employAction!save"; $.ajax({ type:"POST", url:saveURL, data:formData, dataType:"JSON", success:function(obj){ //alert(obj.success); if(obj.success){ $.message("success","新增用户信息成功...."); setTimeout(function(){ location.href="${pageContext.request.contextPath}/employAction!list"; }, 1000); }else{ $.message("error",obj.message); } } }); //不提交表单 return false; } function findOut(){ var name=$("#inputname").val(); var saveURL = "${pageContext.request.contextPath}/employAction!infoList?name="+name+""; if (saveURL!="/employAction!infoList?name=") { window.location.href = saveURL; var ifo=document.getElementById("info"); ifo.style.display="block"; alert(informationname); }else{ } return false; }; function yes(){ var emp=document.getElementById("emp"); emp.style.display="block"; return false; } </script> </head> <body> <div class="main"> <div class="increase_box"> <div class="increase_list"> <h3><b>就业信息管理</b><span></span></h3> <div class="increase_main"> <form id="form1" novalidate="novalidate"> <input type="hidden" id="employId" name="employ.employId" value='<s:property value="employ.employId"/>' /> <input type="hidden" id="informationId" name="information.informationId" value='<s:property value="information.informationId"/>' /> <tr> <td align="left" valin="middle"> <form action="${pageContext.request.contextPath}/employAction!infoList" method="post"> <td align="left" valign="middle" style="text-align:right; width:190px;"></td> <input type="text" class="input_k2" placeholder="请输入用户名" value="" id="inputname" /> </td> <td align="left" valign="middle" style="text-align:right; width:80px;"> <a class="byget" href="javascript:" onclick="findOut()">查询</a></td> </form> </tr> <table width="96%" border="0" align="center" cellpadding="0" cellspacing="0" class="box_news_show assessment_show" style="display: block" id="info"> <tr> <th width="10%" align="center" valign="middle" class="borderright">ID</th> <th width="10%" align="center" valign="middle" class="borderright">姓名</th> <th width="10%" align="center" valign="middle" class="borderright">入伍时间</th> <th width="10%" align="center" valign="middle" class="borderright">退伍时间</th> <th width="10%" align="center" valign="middle" class="borderright">入党时间</th> <th width="20%" align="center" valign="middle" class="borderright">所在单位</th> <th width="10%" align="center" valign="middle" class="borderright">状态</th> <th width="20%" align="center" valign="middle" class="borderright">身份证号码</th> <th align="center" valign="middle" class="borderright">录入人员</th> <th width="5%" align="center" valign="middle">操作</th> </tr> <s:iterator value="infoList" status="st"> <tr onMouseOut="this.style.backgroundColor='#ffffff'" onMouseOver="this.style.backgroundColor='#edf5ff'"> <td align="center" valign="middle" class="borderright borderbottom"><s:property value="informationId"/></td> <td align="center" valign="middle" class="borderright borderbottom" ><s:property value="informationname"/></td> <td align="center" valign="middle" class="borderright borderbottom"><s:property value="enlistmenttime"/></td> <td align="center" valign="middle" class="borderright borderbottom"><s:property value="retiredtime"/></td> <td align="center" valign="middle" class="borderright borderbottom"><s:property value="partytime"/></td> <td align="center" valign="middle" class="borderright borderbottom"><s:property value="unit"/></td> <td align="center" valign="middle" class="borderright borderbottom"><s:property value="stats"/></td> <td align="center" valign="middle" class="borderright borderbottom"><s:property value="numbers"/></td> <td align="center" valign="middle" class="borderright borderbottom"><s:property value="entrypersonnel"/></td> <td><input type="submit" value="确定" class="button_1" onclick="yes()"/></td> </tr> </s:iterator> </table> <table width="96%" border="0" align="center" cellpadding="0" cellspacing="0" class="box_news_show assessment_show" style="display: none" id="emp"> <tr> <td width="20%" class="box_news_show_h3">用户名称: </td> <td width="28%" class="box_news_show_h1"> <input name="information.informaationname" type="text" class="input_k2" onblur="checkEmployName()" maxlength="20" id="infoname"/> <span style="color:red;" id="infoname">*</span> </td> <td width="20%" class="box_news_show_h3">从事行业</td> <td width="28%" class="box_news_show_h1"> <s:textfield name="employ.employIndustry" id="employIndustry" class="input_k2" /> <span style="color:red;" id="employIndustry">*</span> </td> </tr> <tr> <td width="20%" class="box_news_show_h3">工作年限</td> <td width="28%" class="box_news_show_h1"> <s:textfield name="employ.workTime" class="input_k2" id="employ_workTime" onkeyup="this.value=this.value.replace(/\D/g,'')"/>&nbsp;年 <span style="color:red;" id="employ_workTime">*</span> </td> <%-- <td width="20%" class="box_news_show_h3">就业方式</td> <td width="28%" class="box_news_show_h1"> <s:select name="employ.employway_id" list="employwayList" listKey="dictId" listValue="value" id="employWay" headerKey="" headerValue="请选择" class="input_k2"></s:select> <span style="color:red;" id="employ_employWay">*</span> </td> --%> </tr> <tr > <td width="20%" class="box_news_show_h3">培训机构名称</td> <td width="28%" class="box_news_show_h1"> <s:textfield name="employ.eduName" class="input_k2" id="eduName" /> <span style="color:red;" id="employ_eduName">*</span> </td> <td width="20%" class="box_news_show_h3">公司名称</td> <td width="28%" class="box_news_show_h1"> <s:textfield name="employ.companyName" id="companyName" class="input_k2" /> <span style="color:red;" id="employ_companyName">*</span> </td> </tr> </table> </div> </div> <div class="increase_bottom"><p> <input type="button" value="保存" class="button_1" onclick="save()"/> <input type="button" class="button_2" value="返回" onclick="history.go(-1)"/> </p> </div> <div class="clear"></div> </div> </form> </body> </html> ``` 求求各位大佬了,救救孩子吧............................
Ajax无刷新提交表单并搜索数据库
![![图片说明](https://img-ask.csdn.net/upload/201603/22/1458634248_267260.png)图片说明](https://img-ask.csdn.net/upload/201603/22/1458634237_360971.png) 大家看图也能明白我的意思。页面中包含两个框架,下面的框架就是主要的问题所在。两个下拉列表联动已经会做了,现在想要点击“确定”后提交表单并在下面显示出数据库查询结果,但同时下拉列表不能刷新,保持选择的项目状态。目前点击按钮后会出现第二图的情况,恶心死我了。 我参考Shelley Powershot的《JavaScript学习指南》,可是却没能达到我想要的效果。提交表单是大概只能用post方法了吧……求大神相助,可以提供思路,提供参考文献或者指正我的代码 sd_help.php如下: ``` <!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" /> <link href="style.css" type="text/css" rel="stylesheet"> <script type="text/javascript" src="jquery-1.3.2.min.js"></script> </head> <body class="font"> <div align="center"><font size="4px">选择您需要的帮助</font></div><br> <form name="search" action="search_db.php" method="post"> <div align="center"> <select name="domain" id="domain" onChange="redirec(document.search.domain.options.selectedIndex)"> <option selected value="0">请选择</option> <option value="1">体育</option> <option value="2">艺术</option> <option value="3">文史</option> </select>&nbsp;&nbsp;&nbsp;&nbsp; <select name="items" id="items"> <option value="0" selected>请选择</option> </select>&nbsp;&nbsp; <input type="submit" value="确定" id="submitButton"/> </form> </div> <script language="javascript"> //获取一级菜单长度 var groups = document.search.domain.options.length; var group = new Array(groups); //把一级菜单都设为数组 for (i=0; i<groups; i++) { group[i] = new Array();} //定义基本选项 group[0][0] = new Option("请选择", "0"); group[1][0] = new Option("足球", "1"); group[1][1] = new Option("篮球", "2"); group[1][2] = new Option("乒乓球", "3"); group[2][0] = new Option("歌唱", "4"); group[2][1] = new Option("舞蹈", "5"); group[2][2] = new Option("乐器", "6"); group[3][0] = new Option("小说", "7"); group[3][1] = new Option("散文", "8"); group[3][2] = new Option("诗词", "9"); //联动函数 function redirec(x) { var temp = document.search.items; for (i=0;i<group[x].length;i++) { temp.options[i]=new Option(group[x][i].text,group[x][i].value);} temp.options[0].selected=true; } //<![CDATA[ //全局变量 var xmlHttpObj; function catchEvent(eventObj,event,eventHandler){ if(eventObj.addEventListener){ eventObj.addEventListener(event,eventHandler,false); }else if(eventObj.attachEvent){ event="on"+event; eventObj.attachEvent(event,eventHandler); } } catchEvent(window,"load",function(){ //document.getElementById("helps").style.display="block"; document.getElementById("items").onchange=populateList; //document.getElementById("submitButton").style.display="none"; }); //创建XHR对象 function getXmlHttp(){ var xmlhttp=null; if(window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); if(xmlhttp.overrideMimeType){ xmlhttp.overrideMimeType('text/html'); } }else if(window.ActiveObject){ xmlhttp=new ActiveObject("Microsoft.XMLHTTP"); } return xmlhttp; } //准备并发送XHR请求 function populateList(){ var items=document.getElementById("items").value; var url='search_db.php'; var qry="items="+items; //如果xmlHttpObj为空 if(!xmlHttpObj) xmlHttpObj=getXmlHttp(); if(!xmlHttpObj) return; xmlhttp.open('POST',url,true); xmlhttp.onreadystatechange=getItems; xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); xmlhttp.send(qry); } //处理返回的数据 function getItems(){ if(xmlHttpObj.readyState==4&&xmlHttpObj.status==200){ document.getElementById('helps').innerHTML=xmlHttpObj.responseText; }else if(xmlHttpObj.readyState==4&&xmlHttpObj.status!=200){ document.getElementById('helps').innerHTML='请求出错误!'; } } //]]> </script> <div align="center"> <table><tr><td id="helps"></td></tr></table> </div> </body> ``` search_db.php如下(暂为演示,所以没有执行数据库查询): ``` <?php if(empty($_QUEST['items'])){ echo "未传入items值!悲剧!"; } else echo ($_QUEST['items']); ?> ```
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
使用 Docker 部署 Spring Boot 项目
Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下。首先构建一个简单的 S...
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
redis分布式锁,面试官请随便问,我都会
文章有点长并且绕,先来个图片缓冲下! 前言 现在的业务场景越来越复杂,使用的架构也就越来越复杂,分布式、高并发已经是业务要求的常态。像腾讯系的不少服务,还有CDN优化、异地多备份等处理。 说到分布式,就必然涉及到分布式锁的概念,如何保证不同机器不同线程的分布式锁同步呢? 实现要点 互斥性,同一时刻,智能有一个客户端持有锁。 防止死锁发生,如果持有锁的客户端崩溃没有主动释放锁,也要保证锁可以正常释...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
Java世界最常用的工具类库
Apache Commons Apache Commons有很多子项目 Google Guava 参考博客
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下...
为什么要学数据结构?
一、前言 在可视化化程序设计的今天,借助于集成开发环境可以很快地生成程序,程序设计不再是计算机专业人员的专利。很多人认为,只要掌握几种开发工具就可以成为编程高手,其实,这是一种误解。要想成为一个专业的开发人员,至少需要以下三个条件: 1) 能够熟练地选择和设计各种数据结构和算法 2) 至少要能够熟练地掌握一门程序设计语言 3) 熟知所涉及的相关应用领域的知识 其中,后两个条件比较容易实现,而第一个...
Android 9.0 init 启动流程
阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android本篇文章主要介绍Android开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:一、启动流程概述一、 启动流程概述Android启动流程跟Linux启动类似,大致分为如下五个阶段。1.开机上电,加载固化的ROM。2.加载BootLoader,拉起Android OS。3.加载Uboot,初始外设,引导Kernel启动等。...
8年经验面试官详解 Java 面试秘诀
作者 |胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。 Java程序员准备和投递简历的实...
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车?某胡同口的煎饼摊一年能卖出多少个煎饼?深圳有多少个产品经理?一辆公交车里能装下多少个乒乓球?一个正常成年人有多少根头发?这类估算问题,被称为费米问题,是以科学家费米命名的。为什么面试会问这种问题呢?这类问题能把两类人清楚地区分出来。一类是具有文科思维的人,擅长赞叹和模糊想象,它主要依靠的是人的第一反应和直觉,比如小孩...
前后端分离,我怎么就选择了 Spring Boot + Vue 技术栈?
前两天又有小伙伴私信松哥,问题还是职业规划,Java 技术栈路线这种,实际上对于这一类问题我经常不太敢回答,每个人的情况都不太一样,而小伙伴也很少详细介绍自己的情况,大都是一两句话就把问题抛出来了,啥情况都不了解,就要指出一个方向,这实在是太难了。 因此今天我想从我学习 Spring Boot + Vue 这套技术栈的角度,来和大家聊一聊没有人指导,我是如何一步一步建立起自己的技术体系的。 线上大...
17张图带你解析红黑树的原理!保证你能看懂!
二叉查找树 由于红黑树本质上就是一棵二叉查找树,所以在了解红黑树之前,咱们先来看下二叉查找树。 二叉查找树(Binary Search Tree),也称有序二叉树(ordered binary tree),排序二叉树(sorted binary tree),是指一棵空树或者具有下列性质的二叉树: 若任意结点的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若任意结点的...
so easy! 10行代码写个"狗屁不通"文章生成器
前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。 背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法 不过,当我看了源代码之后 这程序不到50行 尽管我有多年的Python经验,但我竟然一时也没有看懂 当然啦,原作者也说了,这个代码也是在无聊中诞生的,平时撸码是不写中文变量名的, 中文...
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的回答,对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalking,作者吴晟、刘浩杨 等等 仓库地址: apache/skywalking 更...
相关热词 c# 引用mysql c#动态加载非托管dll c# 两个表数据同步 c# 返回浮点json c# imap 链接状态 c# 漂亮字 c# 上取整 除法 c#substring c#中延时关闭 c#线段拖拉
立即提问