请教,js如何获取table中某列td所有的值,谢谢!

例如

第一列 第二列aaa 第三列
第一列 第二列bbb 第三列
第一列 第二列ccc 第三列
我想获取的内容是:第二列aaa,第二列bbb,第二列ccc
请问js该怎么写,谢谢

8个回答

用jQuery会方便一些,当然,用原生js也可以
$('tr').each(function(n){ //这里的n可有可无
//开始遍历每一行的每一列
for(var i=0;i<cells(3,列数);i++){
$(this).children('td').eq(i).text(); //这里就拿到了第n行第i列的文字,你可以赋值给其他变量
}
})

用原生js语法:
var table = document.getElementById("mySubjectsTable"); //获得整个表格对象
for (var i = 0; i < table.rows.length; i++) {
//表格的第i行,第2列
for (var j = 0; j < table.cells.length; j++) {
table.rows[i].cells[j].innerText.trim(" "));
}
}

这个不太懂,不过帮你顶上去!

jquery一个选择器就可以搞定
例如,获取第二列全部的文本内容:$('table>tbody>tr>td:nth-child(2)').text();

可以为第二列所有td加个class,然后jquery的$(".class").each(function() { $(this).text() })

用js的思路是这样的,先获取到table,然后迭代他的子类,那个其实就是个数组。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
javascript对table设置样式的问题..
下面是完整的代码: 我是想通过,鼠标移到tr上面,把背景样式改变,然后,鼠标单击的时候,也该表背景颜色, 现在这一步已经完成, 还有一个就是鼠标移到其他行,又需要恢复,onmouseover和 onmouseOut 的样式。 这个要怎么实现?请教一下... <html> <head> <script> //单击时,改变样式; function onClickChangeStyle(obj){ //获取表格对象; var tab = document.getElementById("tab"); //获取当前行选择下标; var currentRowIndex = obj.rowIndex; //获取表格所有行数; var tablRows = tab.rows.length; //获取表格第一行,第一列的值; //var firstCellValue = tab.rows[0].cells[0].innerHTML; //获取表格的第一行,第一列的第一个元素的值; //var firstChildValue = tab.rows[0].cells[0].firstChild.value; //循环表格的所有行;并且选择的当前行,改变背景颜色; for(var i = 0;i<tablRows;i=i+1){ if(currentRowIndex == i){ //为选中的当前,设置css样式; tab.rows[i].style.cssText="background-color:00FFFF"; }else{ //把没有选中的行的背景样式设置为白色; tab.rows[i].style.cssText="background-color:white"; tab.rows[i].onmouseover = function(){ this.className="displayStyle"; //tab.rows[i].className="displayStyle"; } //绑定鼠标移开事件,并且设置样式为白色; tab.rows[i].onmouseout = function() { this.cssText="background-color:white;"; //tab.rows[i].className="hideStyle"; } } } } </script> <style> .displayStyle{ background-color:blue; } .hideStyle{ background-color:white; } .onClickStyle{ background-color:red; } </style> </head> <body> <form name="myForm"> <table width="100%" id="tab" name="tab"> <tr id="tr1" onmouseOver=this.className="displayStyle" onmouseOut=this.className="hideStyle" onclick="onClickChangeStyle(this)"> <td><input type="checkbox" value="11"/></td> <td>100</td> <td>张三</td> <td>15</td> <td>湖南株洲</td> </tr> <tr id="tr2" onmouseOver=this.className="displayStyle" onmouseOut=this.className="hideStyle" onclick="onClickChangeStyle(this)"> <td><input type="checkbox" value="22"/></td> <td>100</td> <td>李四</td> <td>15</td> <td>湖南长沙</td> </tr> <tr id="tr3" onmouseOver=this.className="displayStyle" onmouseOut=this.className="hideStyle" onclick="onClickChangeStyle(this)"> <td><input type="checkbox" value="33"/></td> <td>100</td> <td>王五</td> <td>15</td> <td>湖南湘潭</td> </tr> </table> </form> </body> </html>
td点击编辑问题 请教一下
jq遍历table怎么进行点击td进行编辑 ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>分页</title> <script type="text/javascript" src="${pageContext.request.contextPath}/jquery-easyui/jquery.min.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath}/jquery-easyui/jquery.easyui.min.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath}/jquery-easyui/locale/easyui-lang-zh_CN.js"></script> <script type="text/javascript"> $(function() { $("#cha") .click( function() { $ .ajax({ url : 'msg/selHis', type : 'POST', dataType : 'json', data : { StartDate : $("#qi").val(), EndDate : $("#zi").val() }, success : function(msg) { var tb = document .getElementById("set"); for (var n = tb.rows.length - 1; n > 0; n--) { tb.deleteRow(n); } for (i = 0; i < msg.length; i++) { $("#set") .append( "<tr><td><input class = 'check' type='checkbox'></td><td>" + (msg[i].yybh == undefined ? " " : msg[i].yybh) + "</td><td>" + (msg[i].jyckh == undefined ? " " : msg[i].jyckh) + "</td><td>" + (msg[i].posjysj == undefined ? " " : msg[i].posjysj) + "</td><td>" + (msg[i].sfzhm == undefined ? " " : msg[i].sfzhm) + "</td><td>" + (msg[i].jylx == undefined ? " " : msg[i].jylx) + "</td><td>" + (msg[i].posjyje == undefined ? " " : msg[i].posjyje) + "</td><td>" + (msg[i].shh == undefined ? " " : msg[i].shh) + "</td><td>" + (msg[i].zdbh == undefined ? " " : msg[i].zdbh) + "</td><td>" + (msg[i].bhcfybz == undefined ? " " : msg[i].bhcfybz) + "</td><td>" + (msg[i].bz1 == undefined ? " " : msg[i].bz1) + "</td><td>" + (msg[i].bz2 == undefined ? " " : msg[i].bz2) + "</td><td>" + (msg[i].bz3 == undefined ? " " : msg[i].bz3) + "</td></tr>") } } }); }); $('table tr td').click( function() { if (!$(this).is('.input')) { $(this).addClass('input').html( '<input type="text" value="' + $(this).text() + '" />').find('input').focus().blur( function() { var thisid = $(this).parent().siblings( "th:eq(0)").text(); var thisvalue = $(this).val(); var thisclass = $(this).parent().attr( "class"); $.ajax({ type : 'POST', url : 'update.php', data : "thisid=" + thisid + "&thisclass=" + thisclass + "&thisvalue=" + thisvalue }); $(this).parent().removeClass('input').html( $(this).val() || 0); }); } }).hover(function() { $(this).addClass('hover'); }, function() { $(this).removeClass('hover'); }); }); </script> </head> <body> <div> 起:<input id="qi" class="easyui-datebox" /> 止:<input id="zi" class="easyui-datebox" /> <input id="cha" type="button" value="查询" /> <input id="upload" type="button" value="上传选中交易"> <table id="set" border="1" cellpadding="0" cellspacing="0" bordercolor="E7F0FF"> <tr bgcolor="E7F0FF"> <th>选择</th> <th>医药机构编号</th> <th>POS签购单交易参考号</th> <th>POS交易时间</th> <th>身份证号码</th> <th>交易类型</th> <th>POS交易金额</th> <th>商户号</th> <th>终端编号</th> <th>包含处方药标志</th> <th>备注1</th> <th>备注2</th> <th>备注3</th> </tr> </table> </div> </body> </html> ```
请教JS兼容性问题
这文件在IE下可以运行,在FF下不能,JS不兼容,那位有空的请帮我改下,谢谢 [code="java"]<html> <head> <title>JS内嵌表格</title> <script type="text/javascript"> var gseq=1; var gLastDetailImgObj=null; //显示详细信息 function showDetailNumTable(){ var innerTR = "<table border=\"1\" align='center' width='100%'><tr style=\"background:gray;\"><td>inner11</td><td>inner12</td><td>inner13</td><td>inner14</td><td>inner15</td></tr><tr><td>inner21</td><td>inner22</td><td>inner23</td><td>inner24</td><td>inner25</td></tr><tr><td>inner31</td><td>inner32</td><td>inner33</td><td>inner34</td><td>inner35</td></tr><tr><td>inner41</td><td>inner42</td><td>inner43</td><td>inner44</td><td>inner45</td></tr></table>"; var imgObj=event.srcElement; var tr=getOuterObj(imgObj,'TR'); // 得到tr对象 var newDivId=null; if(!tr.newDivId){ var newTr=document.createElement("<TR></TR>"); // 创建tr var newTd=document.createElement("<TD COLSPAN='"+tr.children.length+"' bgcolor='#F2F09F'></TD>"); // 创建td newDivId='detaildiv'+(gseq++); // 每一行内嵌的divID,每一行的ID都不同 var newDiv=document.createElement("<div id='"+newDivId+"'></div>"); // 创建div newTr.appendChild(newTd); // tr中添加td newTd.appendChild(document.createTextNode("各地区情况对比如下: ")); newDiv.innerHTML = innerTR; // 必须通过innerHTML方式添加内容,通过字符串拼进去的现实不出内容 newTd.appendChild(newDiv); // td中添加div tr.parentNode.insertBefore(newTr,tr.nextSibling); // 必须通过tr的父节点才能用insertBefore,表示插入某个元素,这里表示在tr下个元素的前面(tr的后面)插入一行 tr.newDivId=newDivId; // 把新生成的div的ID赋给DIV } switchVisible(imgObj); // 控制展开还是合上内嵌表格 if(gLastDetailImgObj!=imgObj){ switchVisible(gLastDetailImgObj); gLastDetailImgObj=imgObj; } else{ gLastDetailImgObj=null; } } function switchVisible(imgObj){ if(!imgObj) return; // 如果imgObj对象为空,则返回 var tr=getOuterObj(imgObj,'TR'); var pvisible=('true'!=tr.currentVisibility); tr.currentVisibility=(pvisible?'true':'false'); // pvisible为真时,tr.currentVisibility为true;pvisible为假时,tr.currentVisibility为false; tr.nextSibling.style.display=(pvisible? '':'none'); // pvisible为真时,tr.nextSibling.style.display为'';pvisible为假时,tr.nextSibling.style.display为none; } //取得对象外围符合指定标签的第一个对象 function getOuterObj(obj,tagName){ while(obj!=null){ if(obj.tagName==tagName) return obj; obj=obj.parentNode; } return null; } </script> </head> <body> <table border="1" align="center" width="80%"> <thead> <tr style="background:GRAY;"> <th>姓名</th><th>年龄</th><th>电话</th><th>性别</th><th>住址</th> </tr> </thead> <tbody> <tr> <td>1</td><td id = "no1"><a href="#" onclick="showDetailNumTable('no1');">11111111</a></td><td>1</td><td>1</td><td>1</td> </tr> <tr> <td>2</td><td id = "no2"><a href="#" onclick="showDetailNumTable('no2');">22222222</a></td><td>2</td><td>2</td><td>2</td> </tr> <tr> <td>3</td><td id = "no3"><a href="#" onclick="showDetailNumTable('no3');">33333333</a></td><td>3</td><td>3</td><td>3</td> </tr> <tr> <td>4</td><td id = "no4"><a href="#" onclick="showDetailNumTable('no4');">44444444</a></td><td>4</td><td>4</td><td>4</td> </tr> </tbody> </table> </body> </html> 将上面的代码保存为html格式后就能看到效果 [/code]
初学者请教一个问题:关于javascript
table表单中显示有n条记录,每2行换一次颜色,即1,2用红色字体;3,4用绿色字体;5,6用红色字体;以此类推; <body> <table id="tbl" align="center" width="50%" border="1"> <tr><td>1</td></tr> <tr><td>2</td></tr> <tr><td>3</td></tr> <tr><td>4</td></tr> <tr><td>5</td></tr> <tr><td>6</td></tr> ...... </table> </body> 求帮帮忙..谢谢.
table里镶嵌form之后存在问题
就是我在做文件的上传,用到的是form嵌入iframe的方式进行处理的,我有一个table 里面放了很多tr和td,然后我在需要的td里面嵌入了form ,然后指向了iframe,来实现 文件的上传操作,但是前台JS始终出现这样的问题,就是点击按钮的时候出现的问题, 请教大神们,有没有遇到过这样的问题 ![图片说明](https://img-ask.csdn.net/upload/201701/20/1484878188_737649.png)
请教jquery单击表格的tr弹出对话框的问题
JS <script> $(document).ready(tableClick); function tableClick(){ $("#t1>tbody>tr").click(function(){ alert("dd"); }); } </script> html: <table id="t1" width="100%" border="0" cellspacing="0" cellpadding="0"> <thead> <tr> <th>标题</th> <th>作者</th> <th>更新时间</th> <th>操作</th> </tr> </thead> <tbody> <tr> <td>啊发撒旦发生</td> <td>test</td> <td>2009/12/12</td> <td>删除 修改</td> </tr> <tr> <td>阿斯顿发撒旦发生发</td> <td>test</td> <td>2009/12/12</td> <td>删除 修改</td> </tr> </tbody> </table> 现在的问题是,鼠标单击行可以正确弹出提示框,但是我想要的是,表格的最后一列不支持此操作,就是说在最后一列上单击鼠标不想弹出提示框,请问该如何写呢,如果我在最后一列的td加上class="noAlert",是否可以过滤掉这个td的单击呢,谢谢了 还有一个问题就是:alert(34.33+3.434);为什么等于37.763999999999996
小白请教高手,python爬取数据遇到js隐藏div怎么办
请教一下,我最近想在政府房管部门网站爬取房产备案信息,地址:http://www.dyyscx.com/newhouse/house_table.aspx?id=828279 每个楼盘表下有个“查看”链接,点击后就会在原页面生成新的备案内容。 这一部分内容使用元素检查是可以看见的,但查看源代码却看不见。 使用network查看XHR发现有个文件“GetBuildTableByAjax.ashx”,这里面的preview中就有相关信息。 截取片段是这样的: ``` 物业类别:住宅 销售状态:抵预 建筑面积:117.260平米 总价:71.65万元' class='border-333333'>3单元&nbsp;3-25-1</td><td width='95' height='30' style='cursor:hand;cursor:point;' bgcolor='#FDDFAB' Title='物业类别:住宅 销售状态:抵预 建筑面积:89.730平米 总价:53.89万元' class='border-333333'>3单元&nbsp;3-25-2</td><td width='95' height='30' style='cursor:hand;cursor:point;' bgcolor='#FDDFAB' Title='物业类别:住宅 销售状态:抵预 建筑面积:120.870平米 总价:70.87万元' class='border-333333'>3单元 ``` 我看了下,原网页head里面有一段Scirpt,内容是这样的: ``` <script type="text/javascript"> function GetData(item, bulid) { var heightobj = document.body.scrollHeight; var widthobj = document.body.scrollWidth; $("div.overdiv").css("width", widthobj).css("height", heightobj).css("left", "0").css("top", "0").show(); //获得显示的位置 var height = document.body.scrollTop + document.documentElement.scrollTop; widthobj = (document.body.clientWidth - 199) / 2; heightobj = (document.documentElement.clientHeight - 60) / 2 + height; //显示该div $("div.select").css("left", widthobj).css("top", heightobj).show(); $.post("GetBuildTableByAjax.ashx", { itemRecord: item, houseCode: bulid }, function (data) { document.getElementById("BuildTable").innerHTML = data; $("div.select").hide(); $("div.overdiv").hide(); }); } </script>' ``` 因为是小白,所以猜想是js隐藏了新内容的标签,导致不在原网页的源代码中显示,所以爬不到内容。 请教一下我猜想的是否正确,以及我要怎么才能获得备案信息的内容。 ps:最好是能贴个完整的方法,谢谢!!!!!!!!!
html中的onload函数执行不完整有时候
原代码就不展示了,以下代码所表达的意思相同 ``` <html> <head> <title>标题</title> <meta content="text/html;charset=utf-8"/> <script type="text/javascript"> function picture(){ var img1 = "${mImg.img1}"; /*el表达式*/ if(img1 != null && img1 != undefined){ var html1 = ''; html1 += "<img src='images/1.png' />" $('#img1').append(html1); } var img2 = "${mImg.img2}"; /*el表达式*/ if(img2 != null && img2 != undefined){ var html2 = ''; html2 += "<img src='images/1.png' />" $('#img2').append(html2); } } </script> <head> <body onload="picture()"> <table> <tr> <td id="img1"> </td> <td id="img2"> </td> </tr> <table> </body> </html> ``` 测试的时候就出现了问题,img1没问题,始终能出来的,但是img2有时候就出不来,特别是第一次加载这个页面的时候。后来实在找不出原因我就把onload函数换成了jquery的$(function(){})函数就没有这样的bug,请教一下这是为什么,望大佬们出来解释一下!谢谢!!!
请教大神JQUERY ajax的问题
``` 请问代码里的script放在kqwork.js里就运行不了是什么问题,路径没有错,还有 <input type="button" value="上报考勤" id="uploadkq">怎么点击没有任何动作?浏览器请求也没有发送 <!doctype html> <html> <head> <meta charset="utf-8"> <title>考勤</title> <script type="text/javascript" src="../static/kqwork.js" charset="gb2312"></script> <script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script> </head> <body> <span>考勤系统测试</span> <input type="button" value="获取考勤" id="getkq" > <input type="button" value="上报考勤" id="uploadkq"> <script> $(function () { $('#getkq').click(function () { $.ajax({ type: "post", dataType: "json", url: "/log", success: function (msg) { var today = new Date(); today.setFullYear(2017, 07, 05); monthDays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); year = today.getYear() + 1900; if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) monthDays[1] = 29; nDays = monthDays[today.getMonth()]; firstDay = today; firstDay.setDate(1); startDay = firstDay.getDay(); column = 1; for (j = startDay; j < 7; j++) { kq.rows[1].cells[j].innerHTML = "" + column + "<br/>上午<select id='sel" + column + "'><option value ='1'>上班</option><option value ='3'>休息</option></select><br/>下午<select id='sel_pm" + column + "'><option value ='1'>上班</option><option value ='3'>休息</option></select>"; //$("#sel" + column + "").val(msg[column - 1].cw_work_type); // var checkValue = $("#select_id").val(); //获取Select选择的Value $("#sel" + column + "").val(msg[column - 1].cw_work_type); $("#sel_pm" + column + "").val(msg[column - 1].cw_work_type_pm); column++; } for (i = 2; i < 6; i++) { for (j = 0; j < 7; j++) { kq.rows[i].cells[j].innerHTML = "" + column + "<br/>上午<select id='sel" + column + "'><option value ='1'>上班</option><option value ='3'>休息</option></select><br/>下午<select id='sel_pm" + column + "'><option value ='1'>上班</option><option value ='3'>休息</option></select>"; $("#sel" + column + "").val(msg[column - 1].cw_work_type); $("#sel_pm" + column + "").val(msg[column - 1].cw_work_type_pm); column++; if (column > nDays) break; } } } }); }); /////此处单击事件为何不起作用?浏览器没有向后台发出请求的动作 $('#uploadkq').click(function () { var kq_arry = new Array(); for (i = 1; i < 31; i++) { kq_arry[i - 1] = $("#sel" + i + "").val(); } var kq_json = $.toJSON(kq_arry); $.ajax({ type: "post", dataType: "json", url: "/up", data: kq_arry, }); }); }); </script> <div align="center" id="div" style="position:absolute;width:840px;widt=840px;left:200px;top:100px;"> <TABLE id="kq" border='1' CELLSPACING='0' CELLPADDING='2' BGCOLOR='#B3DFDA'> <TR BGCOLOR='#AADFDA'> <TD background-color:yellow>周日</TD><TD >周一</TD><TD >周二</TD><TD >周三</TD><TD >周四</TD><TD >周五</TD><TD >周六</TD> </TR> <TR> <TD></TD> <TD></TD> <TD></TD> <TD></TD> <TD></TD> <TD></TD> <TD></TD> </TR> <TR> <TD></TD> <TD></TD> <TD></TD> <TD></TD> <TD></TD> <TD></TD> <TD></TD> </TR> <TR> <TD></TD> <TD></TD> <TD></TD> <TD></TD> <TD></TD> <TD></TD> <TD></TD> </TR> <TR> <TD></TD> <TD></TD> <TD></TD> <TD></TD> <TD></TD> <TD></TD> <TD></TD> </TR> <TR> <TD></TD> <TD></TD> <TD></TD> <TD></TD> <TD></TD> <TD></TD> <TD></TD> </TR> </table> </div> </body> </html> ```
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=gb2312" /> <title>计算器</title> <script type="text/javascript"> //document.getElementById("sub1").submit(); function setval(){ var gd = document.getElementById("gaodu").value; var kd = document.getElementById("kuandu").value; var sl = document.getElementById("shuliang").value; if(gd=="") document.getElementById("gaodu").value=1600; if(kd=="") document.getElementById("kuandu").value=600; if(sl=="") document.getElementById("shuliang").value=1; } </script> </head> <?php $gaodu=$_GET["gaodu"]; $kuandu=$_GET["kuandu"]; $shuliang=$_GET["shuliang"]; ?> <body onload="setval()"> <form action="" id="sub1"> <input name="gaodu" type="text" id="gaodu" onchange="tijiao()" value="<?php echo $gaodu ?>"> <input name="kuandu" type="text" id="kuandu" onchange="tijiao()" value="<?php echo $kuandu ?>"> <input name="shuliang" type="text" id="shuliang" onchange="tijiao()" value="<?php echo $shuliang ?>"> <input name="sub" id="sub" type="submit" value="计算"> </form> <table width="200" border="1"> <tr> <td><?php echo $gaodu+$kuandu ?></td> <td><?php echo $gaodu-$kuandu ?></td> <td>&nbsp;</td> </tr> <tr> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> </table> </body> </html> ``` 以上代码是想做一个特定功能的计算器,为了初始化页面数据,用js设置了表单默认值,但是页面加载时无法自动计算结果(试过js代码onload提交表单,但是页面会不停的刷新)请教提交表单时只刷新数据不刷新页面的办法,谢谢!
请教下大家一个js问题,HTML DOM Element Objects
js参考手册中,HTML DOM Element Objects 有下面这些对象, Anchor 对象 Area 对象 Base 对象 Image对象 Button 对象 Form 对象 Frame/IFrame 对象 Frameset 对象 Image 对象 Input Button 对象 Select 对象 Style 对象 Table 对象 td / th 对象 tr 对象 Textarea 对象等等等等,语句:var img = new Image(); img.src="XXX/XXX/X.jpg";这样new一个Image对象不会报错的,但是为什么var btn = new Button(),var form = new From();会报"Form/Button is not defined"的错?同样是HTML DOM Element Objects,为什么会有这种差异呢?
JSP搜索联想框,新手求指教。
不是用的SSH框架,DAO用JDBC,项目赶工,DAO和Service整合在了一起,我是半路插入的~各位大神先别吐槽……咱先把问题解决再美化~谢谢 页面结构如下 ``` <input name="accountName" id="accountName" class="yhgl_ser required inputElem" onkeyup="getLinkData();" value="<%StringHelper.filterHTML(out, request.getParameter("accountName"));%>" /> <div id="popup" style="position: absolute;"> <table width="100%" bgcolor="#fffafa"> <tbody id="popupBody"></tbody> </table> </div> ``` JS代码如下(借鉴了很多网上的JS方法) ``` <script type="text/javascript"> function getLinkData() { var popupDiv = document.getElementById("info");//获得对应的div对象 var popupBody = document.getElementById("popupBody");//获得对应的tbody对象 var linkDataProperty = document.getElementById("accountName"); //获得对应的输入框对象 clearModels();//清除联想输入提示框的内容 //利用ajax获取后台的模糊查询的数据,并且封装成下拉列表的形式展现出来 $.ajax({ type : "post",//提交的方法为post //对应的Action提交的路径 url : "<%configureProvider.format(out, URLVariable.SEARCH_ACCOUNT);%>", data:{linkDataProperty:linkDataProperty.value},//从前台传递到后台的查询语句的参数 dataType : "json", //从Action中返回的数据的类型为json类型的 error:function(){ alert("没有对应的数据,请查看输入的查询条件!"); }, success : function(data) {//当Ajax提交成功时调用的方法 if(data.length==0){return;} setOffsets();//设置联想输入下拉列表提示框的位置 var tr,td,text; for (var i = 0; i < data.length; i++) {//根据返回的值,手动的拼tbody的内容 text = document.createTextNode(data[i].linkDataProperty);//从Action中返回的数据中取出linkDataProperty的值 td = document.createElement("td");//创建一个td的对象 tr = document.createElement("tr");//创建一个tr的对象 td.mouseOver = function(){this.className="mouseOver;"}; td.mouseOut = function(){this.className="mouseOut;"}; td.onclick = function(){populateModel(this)};//单击td是的方法为populateModel td.appendChild(text); tr.appendChild(td); popupBody.appendChild(tr); } }}); //点击下拉列表中的某个选项时调用的方法 function populateModel(cell) { clearSelect(); linkDataProperty.value = cell.firstChild.nodeValue; //initOtherData(linkDataProperty.value);利用输入框中的数据调用其他方法,初始化其他数据 clearModels();//清除自动完成行 } //清除自动完成行,只要tbody有子节点就删除掉,并且将将外围的div的边框属性设置为不可见的 function clearModels() { while (popupBody.childNodes.length > 0) { popupBody.removeChild(popupBody.firstChild); } popupDiv.style.border = "none"; } //设置下拉列表的位置和样式 function setOffsets() { var width = linkDataProperty.offsetWidth;//获取linkDataProperty输入框的相对宽度 var left = getLeft(linkDataProperty); var top = getTop(linkDataProperty) + linkDataProperty.offsetHeight; popupDiv.style.border = "black 1px solid"; popupDiv.style.left = left + "px"; popupDiv.style.top = top + "px"; popupDiv.style.width = width + "px"; } //获取指定元素在页面中的宽度起始位置 function getLeft(e) { var offset = e.offsetLeft; if (e.offsetParent != null) { offset += getLeft(e.offsetParent); } return offset; } //获取指定元素在页面中的高度起始位置 function getTop(e) { var offset = e.offsetTop; if (e.offsetParent != null) { offset += getTop(e.offsetParent); } return offset; } } //清空输入框中的数据 function clearSelect() { var linkDataProperty=document.getElementById(linkDataProperty); linkDataProperty.value=""; } </script> ``` Servlet代码如下 ``` protected void processPost(HttpServletRequest request, HttpServletResponse response, ServiceSession serviceSession) throws Throwable { //往后传数据 System.out.println("进入servlet,将传入后台:"+request.getParameter("accountName")); //获得DAO服务 ZhglManage manage = serviceSession.getService(ZhglManage.class); //获得前台数据并往后台发送,同时接收返回的结果 String accounts = manage.searchAccountInOneResult(request.getParameter("accountName")); //往前端发送 PrintWriter out = response.getWriter(); System.out.println("返回servlet,即将返回获得的结果:"+accounts+" 给页面"); out.print(accounts); out.close(); } ``` DAO加Service代码如下: ``` public String searchAccountInOneResult(String inputing) throws Throwable { //尝试了Gson但也没成功 Gson gson = new Gson(); System.out.println("进入DAO,传入的参数是:"+inputing); //map方式 Map<String, String> rsMap = new HashMap<String,String>(); String account = ""; String key = ""; //获得连接 Connection conn = getConnection(); //准备SQL语句,获得单列账号信息 String sql = "SELECT @ROW := @ROW +1 AS ROW , t.F02 AS accountName FROM S61.T6110 t, ( SELECT @ROW :=0 )r WHERE t.F02 LIKE '"+inputing+"%' LIMIT 10"; PreparedStatement pstm = conn.prepareStatement(sql); //执行SQL ResultSet rs = pstm.executeQuery(); //获得结果 while(rs.next()){ //map方式 key = rs.getString("accountName"); account = rs.getString("accountName"); rsMap.put(key, account); } String temp = gson.toJson(rsMap); System.out.println("正在打印gson:"+temp); return temp; } ``` 然后控制台是这样的 进入servlet,将传入后台:1 进入DAO,传入的参数是:1 正在打印gson:{"12342@qq.com":"12342@qq.com","12344@qq.com":"12344@qq.com","100@qq.com":"100@qq.com"} 返回servlet,即将返回获得的结果:{"12342@qq.com":"12342@qq.com","12344@qq.com":"12344@qq.com","100@qq.com":"100@qq.com"} 给页面 firefox控制台和页面效果是这样的 ![图片说明](https://img-ask.csdn.net/upload/201505/18/1431943341_591979.png) 我对JS什么的不怎么懂,来请教下各位我哪里有问题,解决方法或者说解决思路应该是怎样的
请教各位大虾 表单提交的问题
我的jsp页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %> <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" type="text/css" href='<c:url value="/css/add.css"/>'> <script type="text/javascript" src='<c:url value="/js/jquery.js"/>'></script> <script type="text/javascript" src='<c:url value="/static/js/page.js"/>'></script> <script language="javascript" type="text/javascript" src='<c:url value="/static/My97DatePicker/WdatePicker.js"/>'></script> <script type="text/javascript"> function selectMember(url,name,width,height) { var name = "选择客户"; var iWidth = 1000; //弹出窗口的宽度; var iHeight = 720; //弹出窗口的高度; var iTop = (window.screen.availHeight-30-iHeight)/2; //获得窗口的垂直位置; var iLeft = (window.screen.availWidth-10-iWidth)/2; //获得窗口的水平位置; window.open(url,name,'height='+iHeight+',,innerHeight='+iHeight+',width='+iWidth+',innerWidth='+iWidth+',top='+iTop+',left='+iLeft+',toolbar=no,menubar=no,scrollbars=auto,resizeable=no,location=no,status=no'); } </script> </head> <body> <div class="bd"> <img style="float: left;" src='<c:url value="/image/l_bgk.jpg"/>' /> <div class="bd_r"> <div class="title"> <ul> <li>发卡</li> </ul> </div> <div style="clear: both;"></div> <form action="<c:url value="/cardActive/active"/>" method="post" name="cardForm"> <table class="add add1"> <tr> <td align="right">卡号:</td> <td> <input type="text" name="cardNum" id="cardNum" size="18" value="${card.cardNum}"/> </td> <td style="text-align: left;color: red;"> &nbsp;*<form:errors path="card.cardNum" />${msg } <span id="tip_cardNum" style="display: none;">&nbsp;请输入卡号</span> </td> </tr> <tr> <td align="right">选择卡的类型</td> <td> <select name="cardType" id="cardType" style="width:140px;" onchange="getvalue()"> <option value = "" selected="selected">请选择</option> <option value = "1" >红卡</option> <option value = "2" >绿卡</option> </select> </td> </tr> <tr> <td align="right">开卡金额:</td> <td><input type="hidden" name="openAmount" id="openAmount" size="18" /> <input type="text" style="display: inline;" name="a" id="a" size="18" value="" /> <select name="b" style="display: none;" id="b" style="width:140px;"> <option value="">--</option> <option value="4999">4999</option> <option value="10000">10000</option> </select> </td> <td style="text-align: left;color: red;"> &nbsp;*<form:errors path="card.openAmount"/> <span id="tip_openAmount" style="display: none;">&nbsp;请选择开卡金额</span> </td> </tr> <tr> <td align="right">选择客户经理:</td> <td><select name="custommerManager.id" id="custommerManager.id" style="width: 140px;" > <option value="161">--</option> <c:forEach var="user" items="${userResult.list }"> <option value="${user.id }" <c:if test="${card.custommerManager.id == user.id }">selected="selected"</c:if>>${user.fullName }</option> </c:forEach> </select> </td> <td style="text-align: left;color: red;"> &nbsp;*<form:errors path="card.custommerManager.id"/> <span id="tip_custommerManager.id" style="display: none;">&nbsp;请选择客户经理</span> </td> </tr> <!-- tr> <td align="right">激活日期:</td> <td><input type="text" name="createDt" id = "createDt" value="${createDate }" class="Wdate" onclick="WdatePicker()" readonly="readonly" size="18" /></td> </tr--> <tr> <td align="right">失效日期:</td> <td><input type="text" name="endDt" id="endDt" value="${card.endDt}" class="Wdate" onclick="WdatePicker()" readonly="readonly" size="18" /></td> </tr> <tr> <td align="right">选择客户(非必选):</td> <td> <input type="hidden" name="member.id" id="memeber.id"/> <input type="text" size="18" name="member.name" id="member.name" disabled="disabled"/> </td> <td align="right"> &nbsp;&nbsp;<a href="javascript:void(0);" onclick='selectMember("<c:url value="/memberselect"/>")'>选择客户</a> </td> </tr> <tr> <td></td> <td class="btn"> <input type="button" value="提交" onclick="sub();"/> </td> </tr> </table> </form> </div> </div> <script type="text/javascript"> function getvalue(){ var cardType = document.getElementById("cardType").value; document.getElementById("openAmount").value=""; document.getElementById("tip_openAmount").innerHTML = ""; if(cardType == 1){ document.getElementById("a").style.display="inline"; document.getElementById("b").style.display="none"; }else{ document.getElementById("b").style.display="inline"; document.getElementById("a").style.display="none"; } } function sub(){ if(isEmptyById("cardNum")){ show("tip_cardNum"); return; }else{ hide("tip_cardNum"); } if(document.getElementById("custommerManager.id").value == ""){ show("tip_custommerManagerId"); return; }else{ hide("tip_custommerManagerId"); } var cardType = document.getElementById("cardType").value; var a = document.getElementById("a").value; var b = document.getElementById("b").value; if(cardType==1){ document.getElementById("openAmount").value=a; } if(cardType==2){ document.getElementById("openAmount").value=b; } var openAmount = document.getElementById("openAmount").value; //alert(openAmount); if(openAmount==""){ document.getElementById("tip_openAmount").innerHTML =""; document.getElementById("tip_openAmount").innerHTML ="请输入金额"; document.getElementById("tip_openAmount").style.display="inline"; return; }else{ document.getElementById("tip_openAmount").style.display="none"; } if(cardType==1){ if(openAmount==1000||openAmount%1000==0 ||openAmount!=0){ document.getElementById("tip_openAmount").style.display="none"; }else{ document.getElementById("tip_openAmount").innerHTML =""; document.getElementById("tip_openAmount").innerHTML ="红卡用户金额为1000或1000倍数"; document.getElementById("tip_openAmount").style.display="inline"; return; } } if(confirm("尊敬的用户,您是否确认激活该卡?")){ document.forms[0].submit(); } } </script> </body> </html> 我提交后 没有反应
如何修改下面的代码让图片一开始不滚动
``` <div id="myscroll" style="height:50px;overflow:hidden; margin-top:14px;"> <table border="0" cellspacing="0" cellpadding="0"> <tr> <td width="120"><img src="/Upload/14202816361243314.jpg" width="120" height="50" /></td> <td width="10">&#160;</td> <td width="120"><img src="/Upload/14202816361243314.jpg" width="120" height="50" /></td> <td width="10">&#160;</td> <td width="120"><img src="/Upload/14202816361243314.jpg" width="120" height="50" /></td> <td width="10">&#160;</td> <td width="120"><img src="/Upload/14202816361243314.jpg" width="120" height="50" /></td> </tr> </table> <table border="0" cellspacing="0" cellpadding="0"> <tr> <td width="120"><img src="/Upload/14202816361243314.jpg" width="120" height="50" /></td> <td width="10">&#160;</td> <td width="120"><img src="/Upload/14202816361243314.jpg" width="120" height="50" /></td> <td width="10">&#160;</td> <td width="120"><img src="/Upload/14202816361243314.jpg" width="120" height="50" /></td> <td width="10">&#160;</td> <td width="120"><img src="/Upload/14202816361243314.jpg" width="120" height="50" /></td> </tr> </table> <table border="0" cellspacing="0" cellpadding="0"> <tr> <td width="120"><img src="/Upload/14202816361243314.jpg" width="120" height="51" /></td> <td width="10">&#160;</td> <td width="120"><img src="/Upload/14202816361243314.jpg" width="120" height="50" /></td> <td width="10">&#160;</td> <td width="120"><img src="/Upload/14202816361243314.jpg" width="120" height="50" /></td> <td width="10">&#160;</td> <td width="120"><img src="/Upload/14202816361243314.jpg" width="120" height="50" /></td> </tr> </table> <table border="0" cellspacing="0" cellpadding="0"> <tr> <td width="120"><img src="/Upload/14202816361243314.jpg" width="120" height="50" /></td> <td width="10">&#160;</td> <td width="120"><img src="/Upload/14202816361243314.jpg" width="120" height="50" /></td> <td width="10">&#160;</td> <td width="120"><img src="/Upload/14202816361243314.jpg" width="120" height="50" /></td> <td width="10">&#160;</td> <td width="120">&#160;</td> </tr> </table> </div> <div id="showhint"></div> <script type="text/javascript"> function $(element){ if(arguments.length>1){ for(var i=0,length=arguments.length,elements=[];i<length;i++){ elements.push($(arguments[i])); } return elements; } if(typeof element=="string"){ return document.getElementById(element); }else{ return element; } } var Class={ create:function(){ return function(){ this.initialize.apply(this,arguments); } } } Function.prototype.bind=function(object){ var method=this; return function(){ method.apply(object,arguments); } } var Scroll=Class.create(); Scroll.prototype={ initialize:function(element,height){ this.element=$(element); this.element.innerHTML+=this.element.innerHTML; this.height=height; this.maxHeight=this.element.scrollHeight/2; this.counter=0; this.scroll(); this.timer=""; this.element.onmouseover=this.stop.bind(this); this.element.onmouseout=function(){this.timer=setTimeout(this.scroll.bind(this),1000);}.bind(this); }, scroll:function(){ if(this.element.scrollTop<this.maxHeight){ this.element.scrollTop++; this.counter++; }else{ this.element.scrollTop=0; this.counter=0; } if(this.counter<this.height){ this.timer=setTimeout(this.scroll.bind(this),20); }else{ this.counter=0; this.timer=setTimeout(this.scroll.bind(this),3000); } }, stop:function(){ clearTimeout(this.timer); } } var myscroll=new Scroll("myscroll",50); </script> ``` 上面的这段代码是让图片向上滚动,但是一开始图片就向上滚动,我想要图片一开始不滚动,停留3000ms以后再滚动,我对js不太熟,请教大家要如何修改这段代码才能达到我想要的效果
js jsp 向servlet跳转过程中的request问题
当在html中使用<form enctype="multipart/form-data">时(使用fileupload上传文件),request.getParameter("name")得到的是null,为了避免这一问题,并且为了检验输入框是否为空,通过js向servlet提交。这样值可以传过去了,但是上传图片中解析request的值却为null 现在想要得到即可以检验输入是否为空,又可以得到传值并将图片保存起来的效果。顺便想请教一下 js跳转的servlet的request和action跳转到servlet的request有什么不同。 P.S:请您不要怀疑什么没有进到servlet等类似问题。如果您有更好的解决方案,非常感谢您的告知,我会在一段日子后研究,但现在我的主要问题是使用html、js、servlet这三种技术解决问题。 非常感谢! 代码如下 html: <%@ page contentType="text/html;charset=GBK" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html lang="en"> <head> <title>新增商家</title> </head> <body> <style> body,td{font-size:12px;} </style> <script language=javascript> //验证填入值不为空 function checkEmpty(){ var name = document.getElementById("merchantName").value; var call = document.getElementById("merchantCall").value; var picture = document.getElementById("picture").value; var address = document.getElementById("merchantAdd").value; var validate = document.getElementById("validatetCall").value; if(name==""||call==""||picture==""||address==""||validate==""){ alert("请您填写所需要的信息"); } else{ // 跳转到AddMerchantServlet中 document.merchantForm.action = "/discountCoupon/AddMerchant?name="+name+"&call="+call+"&picture="+picture+"&address="+address+"&verifyCall="+validate ; document.merchantForm.submit(); } } </script> <form name="merchantForm" enctype="multipart/form-data" method="post" > <fieldset style="width: 600; height: 60;padding:2px;" > <table> <tr> <td> <font color="red">*</font> 商家名称: <input type="text" id="merchantName" width="280px" style="height:18px;width:300px" value="请您限制在10个字以内" /> </td> </tr> <tr> <td> <font color="red">*</font> 商家电话: <input type="text" id="merchantCall" maxlength="11" /> </td> </tr> <tr> <td> <font color="red">*</font> 商家海报: <input type="file" id="picture" /> <input type="reset" /> </td></tr> <tr> <td> <font color="red">*</font> 商家地址: <input type="text" id="merchantAdd" style="height:18px;width:300px" /> </td> </tr> <tr> <td> <font color="red">*</font> 验证手机: <input type="text" id="validatetCall" maxlength="11" />&nbsp &nbsp添加 </td> </tr> <tr> <td> <input type="submit" value="保存" name="save" onclick="checkEmpty();" /> </td> <td>&nbsp &nbsp </td> <td> <input type="button" value="取消" name="cancel" onclick="window.close();" /> </td> </tr> </table> </fieldset> </form> </body> </html> servlet package com.ygsoft.servlet; import java.io.BufferedInputStream; public class AddMerchant extends HttpServlet { private static final long serialVersionUID = 1L; File tmpDir = null; File saveDir = null; @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); //从addMerchant.jsp中取得数据 String name = request.getParameter("name"); //对得到的数据进行转码 byte [] bytes1 = name.getBytes("iso-8859-1"); String merchantName = new String(bytes1,"GBK"); String merchantCall = request.getParameter("call"); String merchantPicture = request.getParameter("picture"); //对得到的数据进行转码 byte [] bytes2 = merchantPicture.getBytes("iso-8859-1"); String picture = new String(bytes2,"GBK"); String address = request.getParameter("address"); //对得到的数据进行转码 byte [] bytes3 = address.getBytes("iso-8859-1"); String merchantAdd = new String(bytes3,"GBK"); String validateCall = request.getParameter("verifyCall"); //向数据库中存储数据 BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml"); MerchantDao dao = (MerchantDao) factory.getBean("merchantDao"); Merchant merchant = new Merchant(); MerchantAssistant merchantAssistant = new MerchantAssistant(); HashSet<MerchantAssistant> set = new HashSet<MerchantAssistant>(); merchantAssistant.setVerifyUserPhoneNum(validateCall); merchantAssistant.setActive(1); set.add(merchantAssistant); merchant.setMerchantName(merchantName); merchant.setMerchantAdd(merchantAdd); merchant.setMerchantPhoneNum(merchantCall); merchant.setMerchantPic(picture); merchantAssistant.setMerchant(merchant); merchant.setMerchantAssistantSet(set); dao.addMerchant(merchant); //跳转到商家管理页面 RequestDispatcher rd = request.getRequestDispatcher("/merchantManage"); rd.forward(request, response); } public AddMerchant() { super(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //对图片进行存储 try { if (ServletFileUpload.isMultipartContent(request)) { // 创建该对象 DiskFileItemFactory dff = new DiskFileItemFactory(); // 指定上传文件的临时目录 dff.setRepository(tmpDir); // 指定在内存中缓存数据大小,单位为byte dff.setSizeThreshold(1024000); // 创建该对象 ServletFileUpload sfu = new ServletFileUpload(dff); // 指定上传文件的最大尺寸 sfu.setFileSizeMax(5000000); // 指定依次上传多个文件的总尺寸 sfu.setSizeMax(10000000); // 解析request请求,并返回FileItemIterator集合 FileItemIterator fii = sfu.getItemIterator(request); // 解析request请求,并返回FileItemIterator while (fii.hasNext()) { // 从集合中获得一个文件流 FileItemStream fis = fii.next(); // 过滤表单中空文件域 if ((!fis.isFormField()) && fis.getName().length() > 0) { // 获得的上传文件的文件名 String fileName = fis.getName().substring( fis.getName().lastIndexOf("//") + 1); if (fis.getName().lastIndexOf("//") == -1) { fileName = fis.getName().substring( fis.getName().lastIndexOf("/") + 1); // 获得文件输入流 BufferedInputStream in = new BufferedInputStream( fis.openStream()); // 获得文件输出流 BufferedOutputStream out = new BufferedOutputStream( new FileOutputStream(new File(saveDir, fileName))); // 开始把文件写到你指定的上传文件夹 Streams.copy(in, out, true); } } } } } catch (Exception e) { e.printStackTrace(); } } public void init() throws ServletException { super.init(); String tmpPath = "d://tempdir"; String savePath = "d://savedir"; tmpDir = new File(tmpPath); saveDir = new File(savePath); if (!tmpDir.isDirectory()) tmpDir.mkdir(); if (!saveDir.isDirectory()) saveDir.mkdir(); } }
ext3日期显示分秒控件
ext3的日期控件没有分秒,在网上早了一个2.0的日期控件,添进去以后,没有Ext.menu.Adapter这个类,从2.0的ext-all.js中加入以后,有提示this.cells = this.el.select("table.x-date-inner tbody td"); this.cells 为空,但是在ext3的ext-all.css中有这个啊,请教高手,控件源代码在上传文件中
请教各位大虾 表单怎么提交不上
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %> <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" type="text/css" href='<c:url value="/css/add.css"/>'> <script type="text/javascript" src='<c:url value="/js/jquery.js"/>'></script> <script type="text/javascript" src='<c:url value="/static/js/page.js"/>'></script> <script language="javascript" type="text/javascript" src='<c:url value="/static/My97DatePicker/WdatePicker.js"/>'></script> <script type="text/javascript"> function selectMember(url,name,width,height) { var name = "选择客户"; var iWidth = 1000; //弹出窗口的宽度; var iHeight = 720; //弹出窗口的高度; var iTop = (window.screen.availHeight-30-iHeight)/2; //获得窗口的垂直位置; var iLeft = (window.screen.availWidth-10-iWidth)/2; //获得窗口的水平位置; window.open(url,name,'height='+iHeight+',,innerHeight='+iHeight+',width='+iWidth+',innerWidth='+iWidth+',top='+iTop+',left='+iLeft+',toolbar=no,menubar=no,scrollbars=auto,resizeable=no,location=no,status=no'); } </script> </head> <body> <div class="bd"> <img style="float: left;" src='<c:url value="/image/l_bgk.jpg"/>' /> <div class="bd_r"> <div class="title"> <ul> <li>发卡</li> </ul> </div> <div style="clear: both;"></div> <form action="<c:url value="/cardActive/active"/>" method="post" name="cardForm"> <table class="add add1"> <tr> <td align="right">卡号:</td> <td> <input type="text" name="cardNum" id="cardNum" size="18" value="${card.cardNum}"/> </td> <td style="text-align: left;color: red;"> &nbsp;*<form:errors path="card.cardNum" />${msg } <span id="tip_cardNum" style="display: none;">&nbsp;请输入卡号</span> </td> </tr> <tr> <td align="right">选择卡的类型</td> <td> <select name="cardType" id="cardType" style="width:140px;" onchange="getvalue()"> <option value = "" selected="selected">请选择</option> <option value = "1" >红卡</option> <option value = "2" >绿卡</option> </select> </td> </tr> <tr> <td align="right">开卡金额:</td> <td><input type="hidden" name="openAmount" id="openAmount" size="18" /> <input type="text" style="display: inline;" name="a" id="a" size="18" value="" /> <select name="b" style="display: none;" id="b" style="width:140px;"> <option value="">请选择</option> <option value="4999">4999</option> <option value="10000">10000</option> </select> </td> <td style="text-align: left;color: red;"> &nbsp;*<form:errors path="card.openAmount"/> <span id="tip_openAmount" style="display: none;">&nbsp;请选择开卡金额</span> </td> </tr> <tr> <td align="right">选择客户经理:</td> <td><select name="custommerManager.id" id="custommerManager.id" style="width: 140px;" > <option value="">请选择</option> <c:forEach var="user" items="${userResult.list }"> <option value="${user.id }" <c:if test="${card.custommerManager.id == user.id }">selected="selected"</c:if>>${user.fullName }</option> </c:forEach> </select> </td> <td style="text-align: left;color: red;"> &nbsp;*<form:errors path="card.custommerManager.id"/> <span id="tip_custommerManager.id" style="display: none;">&nbsp;请选择客户经理</span> </td> </tr> <!-- tr> <td align="right">激活日期:</td> <td><input type="text" name="createDt" id = "createDt" value="${createDate }" class="Wdate" onclick="WdatePicker()" readonly="readonly" size="18" /></td> </tr--> <tr> <td align="right">失效日期:</td> <td> <input type="text" name="endDate" id="endDate" value="" class="Wdate" onclick="WdatePicker()" readonly="readonly" size="18"/> </td> </tr> <tr> <td align="right">选择客户(非必选):</td> <td> <input type="hidden" name="member.id" id="memeber.id"/> <input type="text" size="18" name="member.name" id="member.name" disabled="disabled"/> </td> <td align="right"> &nbsp;&nbsp;<a href="javascript:void(0);" onclick='selectMember("<c:url value="/memberselect"/>")'>选择客户</a> </td> </tr> <tr> <td></td> <td class="btn"> <input type="button" value="提交" onclick="sub();"/> </td> </tr> </table> </form> </div> </div> <script type="text/javascript"> function getvalue(){ var cardType = document.getElementById("cardType").value; document.getElementById("openAmount").value=""; document.getElementById("tip_openAmount").innerHTML = ""; if(cardType == 1){ document.getElementById("a").style.display="inline"; document.getElementById("b").style.display="none"; }else{ document.getElementById("b").style.display="inline"; document.getElementById("a").style.display="none"; } } function sub(){ if(isEmptyById("cardNum")){ show("tip_cardNum"); return; }else{ hide("tip_cardNum"); } if(document.getElementById("custommerManager.id").value == ""){ show("tip_custommerManagerId"); return; }else{ hide("tip_custommerManagerId"); } var cardType = document.getElementById("cardType").value; var a = document.getElementById("a").value; var b = document.getElementById("b").value; if(cardType==1){ document.getElementById("openAmount").value=a; } if(cardType==2){ document.getElementById("openAmount").value=b; } var openAmount = document.getElementById("openAmount").value; //alert(openAmount); if(openAmount==""){ document.getElementById("tip_openAmount").innerHTML =""; document.getElementById("tip_openAmount").innerHTML ="请输入金额"; document.getElementById("tip_openAmount").style.display="inline"; return; }else{ document.getElementById("tip_openAmount").style.display="none"; } if(cardType==1){ if(openAmount==1000||openAmount%1000==0 ||openAmount!=0){ document.getElementById("tip_openAmount").style.display="none"; }else{ document.getElementById("tip_openAmount").innerHTML =""; document.getElementById("tip_openAmount").innerHTML ="红卡用户金额为1000或1000倍数"; document.getElementById("tip_openAmount").style.display="inline"; return; } } if(confirm("尊敬的用户,您是否确认激活该卡?")){ document.forms[0].submit(); } } </script> </body> </html> 这是我的代码 如果<td align="right">选择客户经理:</td> <td><select name="custommerManager.id" id="custommerManager.id" style="width: 140px;" > <option value="">请选择</option> 这里面的value为""的时候 表单提交不上 如果value有值得话 就可以提交 这是为什么 怎么该呢
淘淘商城选择类目子节点不显示的问题(EASYUI异步树) 求大神指点!!!
这个是现在的样子: ![图片说明](https://img-ask.csdn.net/upload/201810/22/1540220574_69778.png) 正确的样子: ![图片说明](https://img-ask.csdn.net/upload/201810/22/1540220640_433459.png) DAO层 POJO ![图片说明](https://img-ask.csdn.net/upload/201810/22/1540220824_863010.png) Service ![图片说明](https://img-ask.csdn.net/upload/201810/22/1540220941_247864.png) controller ![图片说明](https://img-ask.csdn.net/upload/201810/22/1540220983_480770.png) JSP ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <link href="/js/kindeditor-4.1.10/themes/default/default.css" type="text/css" rel="stylesheet"> <script type="text/javascript" charset="utf-8" src="/js/kindeditor-4.1.10/kindeditor-all-min.js"></script> <script type="text/javascript" charset="utf-8" src="/js/kindeditor-4.1.10/lang/zh_CN.js"></script> <div style="padding:10px 10px 10px 10px"> <form id="itemAddForm" class="itemForm" method="post"> <table cellpadding="5"> <tr> <td>商品类目:</td> <td> <a href="javascript:void(0)" class="easyui-linkbutton selectItemCat">选择类目</a> <input type="hidden" name="cid" style="width: 280px;"></input> </td> </tr> <tr> <td>商品标题:</td> <td><input class="easyui-textbox" type="text" name="title" data-options="required:true" style="width: 280px;"></input></td> </tr> <tr> <td>商品卖点:</td> <td><input class="easyui-textbox" name="sellPoint" data-options="multiline:true,validType:'length[0,150]'" style="height:60px;width: 280px;"></input></td> </tr> <tr> <td>商品价格:</td> <td><input class="easyui-numberbox" type="text" name="priceView" data-options="min:1,max:99999999,precision:2,required:true" /> <input type="hidden" name="price"/> </td> </tr> <tr> <td>库存数量:</td> <td><input class="easyui-numberbox" type="text" name="num" data-options="min:1,max:99999999,precision:0,required:true" /></td> </tr> <tr> <td>条形码:</td> <td> <input class="easyui-textbox" type="text" name="barcode" data-options="validType:'length[1,30]'" /> </td> </tr> <tr> <td>商品图片:</td> <td> <a href="javascript:void(0)" class="easyui-linkbutton picFileUpload">上传图片</a> <input type="hidden" name="image"/> </td> </tr> <tr> <td>商品描述:</td> <td> <textarea style="width:800px;height:300px;visibility:hidden;" name="desc"></textarea> </td> </tr> <tr class="params hide"> <td>商品规格:</td> <td> </td> </tr> </table> <input type="hidden" name="itemParams"/> </form> <div style="padding:5px"> <a href="javascript:void(0)" class="easyui-linkbutton" onclick="submitForm()">提交</a> <a href="javascript:void(0)" class="easyui-linkbutton" onclick="clearForm()">重置</a> </div> </div> <script type="text/javascript"> var itemAddEditor ; //页面初始化完毕后执行此方法 $(function(){ //创建富文本编辑器 //itemAddEditor = TAOTAO.createEditor("#itemAddForm [name=desc]"); itemAddEditor = KindEditor.create("#itemAddForm [name=desc]", TT.kingEditorParams); //初始化类目选择和图片上传器 TAOTAO.init({fun:function(node){ //根据商品的分类id取商品 的规格模板,生成规格信息。第四天内容。 TAOTAO.changeItemParam(node, "itemAddForm"); }}); }); //提交表单 function submitForm(){ //有效性验证 if(!$('#itemAddForm').form('validate')){ $.messager.alert('提示','表单还未填写完成!'); return ; } //取商品价格,单位为“分” $("#itemAddForm [name=price]").val(eval($("#itemAddForm [name=priceView]").val()) * 100); //同步文本框中的商品描述 itemAddEditor.sync(); //取商品的规格 var paramJson = []; $("#itemAddForm .params li").each(function(i,e){ var trs = $(e).find("tr"); var group = trs.eq(0).text(); var ps = []; for(var i = 1;i<trs.length;i++){ var tr = trs.eq(i); ps.push({ "k" : $.trim(tr.find("td").eq(0).find("span").text()), "v" : $.trim(tr.find("input").val()) }); } paramJson.push({ "group" : group, "params": ps }); }); //把json对象转换成字符串 paramJson = JSON.stringify(paramJson); $("#itemAddForm [name=itemParams]").val(paramJson); //ajax的post方式提交表单 //$("#itemAddForm").serialize()将表单序列号为key-value形式的字符串 $.post("/item/save",$("#itemAddForm").serialize(), function(data){ if(data.status == 200){ $.messager.alert('提示','新增商品成功!'); } }); } function clearForm(){ $('#itemAddForm').form('reset'); itemAddEditor.html(''); } </script> ``` JS ``` Date.prototype.format = function(format){ var o = { "M+" : this.getMonth()+1, //month "d+" : this.getDate(), //day "h+" : this.getHours(), //hour "m+" : this.getMinutes(), //minute "s+" : this.getSeconds(), //second "q+" : Math.floor((this.getMonth()+3)/3), //quarter "S" : this.getMilliseconds() //millisecond }; if(/(y+)/.test(format)){ format = format.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); } for(var k in o) { if(new RegExp("("+ k +")").test(format)){ format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length)); } } return format; }; var TT = TAOTAO = { // 编辑器参数 kingEditorParams : { //指定上传文件参数名称 filePostName : "uploadFile", //指定上传文件请求的url。 uploadJson : '/pic/upload', //上传类型,分别为image、flash、media、file dir : "image" }, // 格式化时间 formatDateTime : function(val,row){ var now = new Date(val); return now.format("yyyy-MM-dd hh:mm:ss"); }, // 格式化连接 formatUrl : function(val,row){ if(val){ return "<a href='"+val+"' target='_blank'>查看</a>"; } return ""; }, // 格式化价格 formatPrice : function(val,row){ return (val/1000).toFixed(2); }, // 格式化商品的状态 formatItemStatus : function formatStatus(val,row){ if (val == 1){ return '正常'; } else if(val == 2){ return '<span style="color:red;">下架</span>'; } else { return '未知'; } }, init : function(data){ // 初始化图片上传组件 this.initPicUpload(data); // 初始化选择类目组件 this.initItemCat(data); }, // 初始化图片上传组件 initPicUpload : function(data){ $(".picFileUpload").each(function(i,e){ var _ele = $(e); _ele.siblings("div.pics").remove(); _ele.after('\ <div class="pics">\ <ul></ul>\ </div>'); // 回显图片 if(data && data.pics){ var imgs = data.pics.split(","); for(var i in imgs){ if($.trim(imgs[i]).length > 0){ _ele.siblings(".pics").find("ul").append("<li><a href='"+imgs[i]+"' target='_blank'><img src='"+imgs[i]+"' width='80' height='50' /></a></li>"); } } } //给“上传图片按钮”绑定click事件 $(e).click(function(){ var form = $(this).parentsUntil("form").parent("form"); //打开图片上传窗口 KindEditor.editor(TT.kingEditorParams).loadPlugin('multiimage',function(){ var editor = this; editor.plugin.multiImageDialog({ clickFn : function(urlList) { var imgArray = []; KindEditor.each(urlList, function(i, data) { imgArray.push(data.url); form.find(".pics ul").append("<li><a href='"+data.url+"' target='_blank'><img src='"+data.url+"' width='80' height='50' /></a></li>"); }); form.find("[name=image]").val(imgArray.join(",")); editor.hideDialog(); } }); }); }); }); }, // 初始化选择类目组件 initItemCat : function(data){ $(".selectItemCat").each(function(i,e){ var _ele = $(e); if(data && data.cid){ _ele.after("<span style='margin-left:10px;'>"+data.cid+"</span>"); }else{ _ele.after("<span style='margin-left:10px;'></span>"); } _ele.unbind('click').click(function(){ $("<div>").css({padding:"5px"}).html("<ul>") .window({ width:'500', height:"450", modal:true, closed:true, iconCls:'icon-save', title:'选择类目', onOpen : function(){ var _win = this; $("ul",_win).tree({ url:'/item/cat/list', animate:true, method:"POST", onClick : function(node){ if($(this).tree("isLeaf",node.target)){ // 填写到cid中 _ele.parent().find("[name=cid]").val(node.id); _ele.next().text(node.text).attr("cid",node.id); $(_win).window('close'); if(data && data.fun){ data.fun.call(this,node); } } } }); }, onClose : function(){ $(this).window("destroy"); } }).window('open'); }); }); }, createEditor : function(select){ return KindEditor.create(select, TT.kingEditorParams); }, /** * 创建一个窗口,关闭窗口后销毁该窗口对象。<br/> * * 默认:<br/> * width : 80% <br/> * height : 80% <br/> * title : (空字符串) <br/> * * 参数:<br/> * width : <br/> * height : <br/> * title : <br/> * url : 必填参数 <br/> * onLoad : function 加载完窗口内容后执行<br/> * * */ createWindow : function(params){ $("<div>").css({padding:"5px"}).window({ width : params.width?params.width:"80%", height : params.height?params.height:"80%", modal:true, title : params.title?params.title:" ", href : params.url, onClose : function(){ $(this).window("destroy"); }, onLoad : function(){ if(params.onLoad){ params.onLoad.call(this); } } }).window("open"); }, closeCurrentWindow : function(){ $(".panel-tool-close").click(); }, changeItemParam : function(node,formId){ $.getJSON("/item/param/query/itemcatid/" + node.id,function(data){ if(data.status == 200 && data.data){ $("#"+formId+" .params").show(); var paramData = JSON.parse(data.data.paramData); var html = "<ul>"; for(var i in paramData){ var pd = paramData[i]; html+="<li><table>"; html+="<tr><td colspan=\"2\" class=\"group\">"+pd.group+"</td></tr>"; for(var j in pd.params){ var ps = pd.params[j]; html+="<tr><td class=\"param\"><span>"+ps+"</span>: </td><td><input autocomplete=\"off\" type=\"text\"/></td></tr>"; } html+="</li></table>"; } html+= "</ul>"; $("#"+formId+" .params td").eq(1).html(html); }else{ $("#"+formId+" .params").hide(); $("#"+formId+" .params td").eq(1).empty(); } }); }, getSelectionsIds : function (select){ var list = $(select); var sels = list.datagrid("getSelections"); var ids = []; for(var i in sels){ ids.push(sels[i].id); } ids = ids.join(","); return ids; }, /** * 初始化单图片上传组件 <br/> * 选择器为:.onePicUpload <br/> * 上传完成后会设置input内容以及在input后面追加<img> */ initOnePicUpload : function(){ $(".onePicUpload").click(function(){ var _self = $(this); KindEditor.editor(TT.kingEditorParams).loadPlugin('image', function() { this.plugin.imageDialog({ showRemote : false, clickFn : function(url, title, width, height, border, align) { var input = _self.siblings("input"); input.parent().find("img").remove(); input.val(url); input.after("<a href='"+url+"' target='_blank'><img src='"+url+"' width='80' height='50'/></a>"); this.hideDialog(); } }); }); }); } }; ``` 貌似是Controller里@RequestParam中的id一直没传进去 ,用的默认值0, 也不知道为什么会这样 ,请教一下应该怎么改。 谢谢!!
jQuery和Java的复选框问题
<p><img src="http://ww3.sinaimg.cn/mw600/a1012416gw1dr222ukh87j.jpg" alt="" width="600" height="202"></p> <div>请教一个问题:如何用jQuery获取左边那列“删除/批量”下选中的复选框,并在按“删除/批量”那个&lt;a&gt;&lt;/a&gt;标签后,把相关值提交到另一个页面去?求教!</div> <div>此页面相关代码如下:</div> <div> <pre name="code" class="html">&lt;%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%&gt; &lt;% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %&gt; &lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt; &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt; &lt;html&gt; &lt;head&gt; &lt;base href="&lt;%=basePath%&gt;"&gt; &lt;title&gt;My JSP 'process.jsp' starting page&lt;/title&gt; &lt;meta http-equiv="pragma" content="no-cache"&gt; &lt;meta http-equiv="cache-control" content="no-cache"&gt; &lt;meta http-equiv="expires" content="0"&gt; &lt;meta http-equiv="keywords" content="keyword1,keyword2,keyword3"&gt; &lt;meta http-equiv="description" content="This is my page"&gt; &lt;!-- &lt;link rel="stylesheet" type="text/css" href="styles.css"&gt; --&gt; &lt;script type="text/javascript" src="jquery-1.4.1.js"&gt;&lt;/script&gt; &lt;script type="text/javascript"&gt; &lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;table width="745" border="1" cellspacing="0"&gt; &lt;!--表头标题行--&gt; &lt;tr&gt; &lt;td&gt;会员信息管理&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;th width="84" scope="col"&gt;&lt;a href="manager.jsp"&gt;删除/批量&lt;/a&gt;&lt;/th&gt; &lt;th width="146" scope="col"&gt;会员编号&lt;/th&gt; &lt;th width="92" scope="col"&gt;会员姓名&lt;/th&gt; &lt;th width="52" scope="col"&gt;会员性别&lt;/th&gt; &lt;th width="58" scope="col"&gt;联系电话&lt;/th&gt; &lt;th width="220" scope="col"&gt;Email地址&lt;/th&gt; &lt;/tr&gt; &lt;c:forEach var="p" items="${requestScope.lst}"&gt; &lt;tr&gt; &lt;td&gt;&lt;input type="checkbox" name="chose" /&gt;&lt;/td&gt; &lt;td&gt;${p.userID}&lt;/td&gt; &lt;td&gt;${p.userName}&lt;/td&gt; &lt;td&gt;${p.userSex}&lt;/td&gt; &lt;td&gt;${p.userPhone}&lt;/td&gt; &lt;td&gt;${p.email}&lt;/td&gt; &lt;/tr&gt; &lt;/c:forEach&gt; &lt;/table&gt; &lt;/body&gt; &lt;/html&gt;</pre>  </div>
相见恨晚的超实用网站
相见恨晚的超实用网站 持续更新中。。。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
python学习方法总结(内附python全套学习资料)
不要再问我python好不好学了 我之前做过半年少儿编程老师,一个小学四年级的小孩子都能在我的教学下独立完成python游戏,植物大战僵尸简单版,如果要肯花时间,接下来的网络开发也不是问题,人工智能也可以学个调包也没啥问题。。。。。所以python真的是想学就一定能学会的!!!! --------------------华丽的分割线-------------------------------- ...
兼职程序员一般可以从什么平台接私活?
这个问题我进行了系统性的总结,以下将进行言简意赅的说明和渠道提供,希望对各位小猿/小媛们有帮助~ 根据我们的经验,程序员兼职主要分为三种:兼职职位众包、项目整包和自由职业者驻场。 所谓的兼职职位众包,指的是需求方这边有自有工程师配合,只需要某个职位的工程师开发某个模块的项目。比如开发一个 app,后端接口有人开发,但是缺少 iOS 前端开发工程师,那么他们就会发布一个职位招聘前端,来配合公司一...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
JAVA 基础练习题
第一题 1.查看以下代码,并写出结果 public class Test01 { public static void main(String[] args) { int i1 = 5; boolean result = (i1++ &gt; 5) &amp;&amp; (++i1 &gt; 4); System.out.println(result); Sy...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
C++知识点 —— 整合(持续更新中)
本文记录自己在自学C++过程中不同于C的一些知识点,适合于有C语言基础的同学阅读。如果纰漏,欢迎回复指正 目录 第一部分 基础知识 一、HelloWorld与命名空间 二、引用和引用参数 2.1引用的定义 2.2 将引用用作函数参数 2.3 将引用用于类对象 2.4 引用和继承 2.5 何时使用引用参数 2.6 引用和指针的区别 三、内联函数 四、默认参数的...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
Python实例大全(基于Python3.7.4)
博客说明: 这是自己写的有关python语言的一篇综合博客。 只作为知识广度和编程技巧学习,不过于追究学习深度,点到即止、会用即可。 主要是基础语句,如三大控制语句(顺序、分支、循环),随机数的生成,数据类型的区分和使用; 也会涉及常用的算法和数据结构,以及面试题相关经验; 主体部分是针对python的数据挖掘和数据分析,主要先攻爬虫方向:正则表达式匹配,常用数据清洗办法,scrapy及其他爬虫框架,数据存储方式及其实现; 最后还会粗略涉及人工智能领域,玩转大数据与云计算、进行相关的预测和分析。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
机械转行java自学经历,零基础学java,血泪总结的干货
机械转行java自学经历,零基础学java,血泪总结的干货 据说,再恩爱的夫妻,一生中都有100次想离婚的念头和50次想掐死对方的冲动。 求职路上亦是如此,打开这篇文章,相信你也有转行的想法。和身边的朋友聊过,入职后的他们,或多或少对现在的职位都有些不满,都有过转行的冲动。 可他们只是想,而我真的这样做了。 下面就介绍下我转行的血泪史。 我为什么要转行 高中复读了一年,考了个双非院校的机械。当时...
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
【Linux系统编程】Linux信号列表
00. 目录 文章目录00. 目录01. Linux信号编号02. 信号简介03. 特殊信号04. 附录 01. Linux信号编号 在 Linux 下,每个信号的名字都以字符 SIG 开头,每个信号和一个数字编码相对应,在头文件 signum.h 中,这些信号都被定义为正整数。信号名定义路径:/usr/include/i386-linux-gnu/bits/signum.h 要想查看这些信号和...
JavaScript 为什么能活到现在?
作者 | 司徒正美 责编 |郭芮 出品 | CSDN(ID:CSDNnews) JavaScript能发展到现在的程度已经经历不少的坎坷,早产带来的某些缺陷是永久性的,因此浏览器才有禁用JavaScript的选项。甚至在jQuery时代有人问出这样的问题,jQuery与JavaScript哪个快?在Babel.js出来之前,发明一门全新的语言代码代替JavaScript...
项目中的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是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法和技巧,包括小数保留指定位小数、判断变量的数据类型、类方法@classmethod、制表符中文对齐、遍历字典、datetime.timedelta的使用等,会持续更新......
借助AI力量,谷歌解开生命奥秘?
全文共4484字,预计学习时长8分钟 Paweł Czerwiński发布在 Unsplash上的原图 假如疾病不复存在会发生什么?如果我们能像大自然一样迅速获取能量又会发生什么?要是我们能够在极短时间内循环塑料、废油、或其它的一些物质呢?如果人类能够解开生命的奥秘,那么以上这些想象将在未来成为现实。人工智能企业DeepMind的数据科学分析师日前在此领域有了重大发现。以下为具体内容:...
吐血推荐珍藏的Visual Studio Code插件
作为一名Java工程师,由于工作需要,最近一个月一直在写NodeJS,这种经历可以说是一部辛酸史了。好在有神器Visual Studio Code陪伴,让我的这段经历没有更加困难。眼看这段经历要告一段落了,今天就来给大家分享一下我常用的一些VSC的插件。 VSC的插件安装方法很简单,只需要点击左侧最下方的插件栏选项,然后就可以搜索你想要的插件了。 下面我们进入正题 Material Theme ...
相关热词 c#委托 逆变与协变 c#新建一个项目 c#获取dll文件路径 c#子窗体调用主窗体事件 c# 拷贝目录 c# 调用cef 网页填表c#源代码 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天
立即提问