jquery的click事件调用的函数,能不能传递参数

需调用函数:
function f(param) {
...
}
参数:
var param = new Array();
param.push(....);
然后需要用click事件调用函数f(param),并把参数param传递进去:

第一感觉是这么写:
$(n).click(f(param));

但是这样加载页面的时候就直接执行函数了,而且参数好像也没传进去。

4个回答

 $(n).click(function(){//套个匿名函数

f(param)

});

function f(a) {
...
}
var param = new Array();
param.push(....);
$(n).click(f(param));
应该是传进去了的

sgsy_2013
xuhanchn 传进去也不行啊。这个f后面带了括号的,按js的语法,函数后带括号就表示这次执行。这样不等你click,页面加载的时候就直接执行这个函数了。
3 年多之前 回复

可以传参数

function click(element){
    $(element).click()
}

$(#id).bind('click',function(param){
...excute
})

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
jquery函数调用问题,给个例子
我想调用popover函数,并且参数content是来自于函数fun的返回值,fun函数是一个click响应事件函数,我应该如何写这个fun函数?给个例子 ``` $('.top-menu #messages').popover({ html:true, placement: 'bottom', title: '消息', content: contents }); ```
jquery 函数调用
对于jquery和javascript之间的函数调用有点疑问: 我写这样一个jquery代码: [code="js"] $(document).ready(function() { function clickToPage() { var options = { ... success: clickToPageResponse, ... }; $.ajax(options); } function clickToPageResponse(data) {...} }); // jquery的$(document).ready(function(){}函数外部 function deleteFunction(id) { var options = { ... success: deleteFunctionResponse, ... }; $.ajax(options); } function deleteFunctionResponse(result) { var options = { ... success: clickToPageResponse, ... }; $.ajax(options); } [/code] 问题出来了,deleteFunctionResponse中怎么都呼出不到clickToPageResponse,我估计是因为deleteFunctionResponse在$(document).ready(function(){}外部,而clickToPageResponse在内部的原因,请问有没有办法让$(document).ready(function(){}外部的javascript代码调到内部的jquery函数? 我不是很明白在$(document).ready(function(){}内外的具体区别,感觉上内部应该是jquery的代码,外部的话就是javascript,而且为什么在jsp标签中用onclick属性调用的函数只能写在$(document).ready(function(){}外部,写在内部就是调不到,只能用.click()来加载onclick函数?
Django+Jquery getJSON方法无法调用回调函数
html部分是这样: ``` <a href="javascript:;" class="btn blue" id="send">Submit</a> ``` Jquery部分是这样: ``` $(function(){ $('#send').click(function(){ $.getJSON("localhost:8000/indicator?jsoncallback=?", function(data){ if (data["HTTPRESPONSE"] == 1){ alert("success"); } }); }); }) ``` Django View.py是这样: ``` def indicator(request): json_data = json.dumps({"HTTPRESPONSE":1}) return HttpResponse(json_data, mimetype="application/json") ``` Django urls.py里是这样: ``` url(r'^indicator/$', 'Django.views.indicator'), ``` 但是结果是JQuery中getJSON方法里的回调函数总是不能执行。 因此想请教下原因,谢谢
jquery的click方法中调用方法无效
``` $("#refresh").click(function(){ alert(111) refreshTree(); }); 上面方法中的refreshTree方法无法被调用 代码如下: <script type="text/javascript"> $(function(){ $("#refresh").click(function(){ alert(111) refreshTree(); }); }); var setting = {data:{simpleData:{enable:true,idKey:"id",pIdKey:"pId",rootPId:'0'}}, callback:{onClick:function(event, treeId, treeNode){ var id = treeNode.id == '0' ? '' :treeNode.id; $('#officeContent').attr("src","${ctx}/sys/dict/list?type="+treeNode.id); } } }; function refreshTree(){ $.getJSON("${ctx}/sys/dict/treeUserData?type=1",function(data){ $.fn.zTree.init($("#ztree"), setting, data).expandAll(true); }); } refreshTree(); var leftWidth = 230; // 左侧窗口大小 var htmlObj = $("html"), mainObj = $("#main"); var frameObj = $("#left, #openClose, #right, #right iframe"); function wSize(){ var strs = getWindowSize().toString().split(","); htmlObj.css({"overflow-x":"hidden", "overflow-y":"hidden"}); mainObj.css("width","auto"); frameObj.height(strs[0] - 5); var leftWidth = ($("#left").width() < 0 ? 0 : $("#left").width()); $("#right").width($("#content").width()- leftWidth - $("#openClose").width() -5); $(".ztree").width(leftWidth - 10).height(frameObj.height() - 46); } </script> ```
对一个对象添加点击事件,想把事件的内容封装到一个函数内怎么做?
$(".banner li").click(function() { var $li = $(this); var i = $li.text() - 1; //0,1,2,3 // if (i >= count) return; $(".banner-list i") .filter(":visible") .fadeOut(400) .parent() .children() .eq(i) .fadeIn(400); $li.addClass("cur"); $li.siblings().removeClass("cur"); } ``` 想把事件触发后执行的效果封装到一个函数action内,点击后直接调用这个函数,但是this总是搞不明白,封装后的函数action该怎么写呢?这是一个简单的轮播图的效果,意思就是我怎么在action函数内监听我点击的是哪个li标签 ```
Jquery trigger方法效果与实际操作不完全相同
## 现在的问题 用jQuery dialog弹出的div中iframe引入的页面B,需要点击一下(点击页面B或者B的父页面A)后才能触发事件,正确显示鼠标样式(这也是之前遇到的很奇怪的问题,写在下面,求解!),于是我打算在页面加载好之后用trigger模拟一次鼠标点击,click的处理函数被调用了但是问题还是存在,为什么。。 ## 之前的问题 (问题出现在chrome,在IE11,火狐正常) 通过右键菜单(jQuery contextmenu插件)调用的dialog方法,不用菜单调用不会有问题。 页面A: ``` <body> <div id="dialog"> <iframe src="B.jsp"></iframe> </div> </body> ``` 点击前的B页面 ![点击前的B页面](https://img-ask.csdn.net/upload/201601/12/1452569566_567112.png) 点击后的B页面 ![点击后的B页面](https://img-ask.csdn.net/upload/201601/12/1452569589_924505.png)
jquery中事件第一次点击无响应,第二次才响应。
jQuery中给a标签加click事件,第一次点击时无响应,但之后就可正常操作。 ``` <a id='share"+workId+"' class='share' onclick='share()' href='javascript:void(0);' studentId='"+student+"' workId='"+workId+"' good='"+good+"'>点我分享</a> 事件如下所示: function share() { $(".share").click(function () { var url = contextPath+"/teacherWorkController/share.wm"; var data = {}; data.studentId=$(this).attr("studentId"); data.workId=$(this).attr("workId"); data.good="是"; var thiselm = $(this); $.post(url,data,function (result) { if(result.msg == "true"){ $("#img"+result.id).attr("src",contextPath+"/media/img/teacherwork/happy.jpg"); thiselm.text("取消分享"); thiselm.removeClass("share").addClass("cancel"); thiselm.unbind("click"); cancel(); //cancel()函数里边也会调用share()函数 }else { alert("分享失败!"); } },"json"); }); } ```
php jQuery 实现无刷新验证问题
前台要实现:焦点移出输入框,自动去验证卡券,并把验证结果无刷新返回到提示框中 ![前台](https://img-ask.csdn.net/upload/201504/09/1428593637_242261.png) 现在的问题就是,在前台的页面代码 ``` $(document).ready(function(){ //DOM的onload事件处理函数 $("#button").click(function(){ //当按钮button被点击时的处理函数 postdata(); //button被点击时执行postdata函数 }); }); function postdata(){ //提交数据函数 $.ajax({ //调用jquery的ajax方法 type: "POST", //设置ajax方法提交数据的形式 url: "checkCard.php", //把数据提交到checkCard.php data: "codeno="+$("#codeno").val(), //交的数据 success: function(msg){ //提交成功后的回调,msg变量是checkCard.php输出的内容。 $('check').innerHTML+=msg; //alert("数据提交成功"); //如果有必要,可以把msg变量的值显示到某个DIV元素中 } }); } ``` 前台显示区域: ``` <div class="contact-input"> <label>兑换码</label><br> <input type="text" name="codeno"> <input type="submit" name="button" id="button" value="WX" /> <div id="check"></div> </div> ``` 就是不成功啊,详细可见 http://bbs.csdn.net/topics/391014234?page=1#post-399081723 谢谢大家
为啥接受不到数据AJAX
``` <script src ="Js/jquery-3.4.1.js"> </script> <script> ////定义变量保存XmlHttpRequest对象 //var xmlHttp = null; ////用于创建AJAX请求核心对象XmlHttpRequest //function createXmlHttpRequest() { // try // { // xmlHttp = new XMLHttpRequest();//适用于IE7+,Fireiox,Chrome等主流浏览器 // } // catch (Error) // { // xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");//适用于IE低版本7以下的 // } //} //$(function () { // $("#ImgButOn").click(function () { // //调用函数创建XmlHttpRequest对象 // createXmlHttpRequest(); // //获得需要提交给服务器的数据 // var UserId = $("#TxtUser").val(); // var UserPwd = $("#TxtPwd").val(); // //服务端路劲,同时把数据传送到服务器地址拦 // var serverPath = "server.ashx?UserId=" + UserId + "&UserPwd=" + UserPwd + ""; // //设置XmlHttpRequest对象参数 // xmlHttp.open("get", serverPath, true); // //服务端处理结果,使用XmlHttpRequest对象状态监测 // xmlHttp.onreadystatechange = clicentCallback; // //通过XmlHttpRequest对象发送请求 // xmlHttp.send(); // }) //}) //function clicentCallback() { // //XmlHttpRequest对象状态从开始发送请求到服务端经历了4个分别是: // //返回值 0 :请求位初始化 // //返回值 1 :和服务端连接已经建立 // //返回值 2 : 请求已被服务端接受 // //返回值 3 :请求处理中 // //返回值 4 :请求处理完 // if (xmlHttp.readyState == 4) { // if (xmlHttp.status == 200) { // //获得服务端返回给客户端的结果(纯文本,xml,josn,html) // var msg = xmlHttp.responseText; // alert(msg); // } // } //} //#Jquery封装函数使用AJAX异步请求 $(function () { $("#ImgButOn").click(function () { $.ajax({ url:"server.ashx",//请求服务端地址 type:"get",//请求方式 data:{ "UserId": $("#TxtUser").val(), "UserPwd":$("#TxtPwd").val() }//发送到服务端的数据 success:function (date, status, xmlhttp) {//服务端成功处理时回调函数 alert(date + ":" + status); }, error: function () {//服务端失败时的回调函数 alert("请求未成功!"); }, dataType:"text"//预期服务端发回数据类型 }) }) </script> public void ProcessRequest(HttpContext context) { SES_Model.User user = new SES_Model.User(); //服务端要获得客户端以AJAX请求发送过来的数据 string UserId = context.Request.QueryString["UserId"]; string UserPwd = context.Request.QueryString["UserPwd"]; //在服务器中处理数据 user = SES_BLL.Users_Service.User_Enter(UserId, UserPwd); string msg = string.Empty; if (user != null) { msg = "ok"; } else { msg = "error!"; } context.Response.ContentType = "text/plain"; context.Response.Write(null); } ```
jquery mobile登录验证问题
请高手略加指点 本人写了个登录验证的手机页面(.net),提交时ajax调用后台login.ashx有返回值,但就是执行不到onSuccess成功回调函数。不知什么原因,十分烦恼。 <script> function onSuccess(data, status) { data = $.parseJSON(data); //data = $.trim(data); if (data.flag == "Y") { //成功,进入新页面 $.mobile.changePage(data.url); } else { alert(data.msg); } } //以下有被调用,login.ashx也执行并返回有值。 $(document).ready(function () { $("#btnLogin").click(function () { var formData = $("#frmLogin").serialize(); $.ajax({ type: "post", url: "login.ashx", cache: false, data: formData, dataType: "text", success: onSuccess ****** //该处没有执行**** }); return false; }); }); </script> </head> <body> <div data-role="page" id="loginPage"> <div data-role="header"> <h1>快单系统登录</h1> </div> <div data-role="content"> <form id="frmLogin" method="post"> <div data-role="fieldcontain"> <label for="mch_id">商户ID:</label> <input type="text" name="mch_id" id="mch_id" /> </div> <div data-role="fieldcontain"> <label for="userid">登录名:</label> <input type="text" name="userid" id="userid" /> </div> <div data-role="fieldcontain"> <label for="password">密码:</label> <input type="text" name="password" id="password" /> </div> <input type="button" value="提交" id="btnLogin" /> </form> </div> </div> </body> </html>
小白求教 点击父页面的一个按钮 怎么触发iframe里的方法
下面是写在iframe里的函数 在父页面begin点击时 没有被调用 ``` parent.$(window.parent.document).find('#begin').click(function () { alert("clicked"); }); ```
轮播广告无缝连接问题
向各位请教一下。 轮播广告中,点击上一张的按钮如何实现无缝? 我现在从第一张到最后一张会经过中间几张图片,如何实现无缝? $('.shanGou_prev a').click(function(e){ e.preventDefault();//取消默认事件 shanGou_this.index--;//序列号减减 shanGou_this.index=shanGou_this.index<0?shanGou_this.num-2:shanGou_this.index;//判断如果序列号小于零,则让序列号等于li的个数减2(在li末尾我添加了第一个LI,使右按钮变成无缝连接) shanGou_this.move(shanGou_this.index);//调用move函数 }); move(i){ if(i<0){ $('.shanGou_slider').stop(true).animate({left:-(this.$sg_slider.length-1)*shanGou_this.LIWIDTH+'px'});//如果序列号小于0,left: ul的(length-1)*宽度. } } 以上是我的js代码,请问应该如何改,使左侧按钮变成无缝的?
js遇到了“诡异”的现象
这是我写的一个向数组添加元素的函数 ``` function addProject(whereToAdd){ var winObj = $("#winProject"); var yesButton = winObj.find(".yes").eq(0); for( var j = 0 ; j < winObj.find("input").length ; j++ ) //清除旧值 winObj.find("input").eq(j).val(""); winObj.slideDown(100); yesButton.click(function(){ var projectName = $("#projectName").val(); if( projectName != "" ){ var projectMoney = $("#projectMoney").val() ? parseInt($("#projectMoney").val()) : 0; var project = new Project(projectName,projectMoney); whereToAdd.push(project); winObj.slideUp(200); }else{ alert("还没有填项目名啊!"); } }); } ``` 这是调用他的地方 ``` $("#addProject").click(function(){ addProject(projectArr); print(projectArr); }); ``` 这是测试输出,为啥这么诡异 为啥还一次比一次多了?我期待的是一次存一个 ![图片说明](https://img-ask.csdn.net/upload/201709/29/1506690374_975736.png)
jq 弹出框的问题,求解dialog()
调用dialog()后,元素不见了 代码: <script type="text/javascript"> $(document).on("click", "#edit", function(){ $("#jumpTag").removeAttr("style"); $( "#jumpTag" ).dialog(); }); </script> </head> <body> <a href = "#" id = "edit">编辑用户信息</a> <div id = "jumpTag" style = "display:none"> aaaaaaaaaaaaaaaaaaaaaaaaa </div> 页面加载,第一次点击“编辑用户信息”能正常弹出框,点击父页面(笼罩层)弹出框就消失了,再次点击“编辑用户信息”时候div的内容就没有了,只剩id,获取div也获取不到了
轮播图在火狐浏览器上时快时慢
代码如下,我用的是移动定位盒子的left,在火狐上很明显,不知道为什么,在谷歌和IE下没有时快时慢,可有时会有些卡顿,谢谢指教! ``` // 创建一个对象,DigsurGallery; DigsurGallery = {}; // 为对象 DigsurGallery,创造一个属性 Rolling; DigsurGallery.Rolling = function() { // 定义变量 speed,作用为速度; this.speed = 1; // 定义变量 timer ,作用为定时器名字; this.timer = null; } // initConfig 是对象下的一个方法,需要传入三个参数,盒子的id,数组的名字,是否需要滚动,是否需要点击按钮; DigsurGallery.Rolling.prototype.initConfig = function(Container, picArray, HasSlider, HasButton) { // 声明一个变量接收 Container; var ContainerName = $("#" + Container); // 声明变量 oBox,创建一个div,id名称为"DigsurFallery-Rolling-box"; var oBox = $("<div id='DigsurFallery-Rolling-box'></div>"); // 将 oBox 拼接到oName中; ContainerName.append(oBox); // 为 DigsurFallery-Rolling-box 设置样式; $("#DigsurFallery-Rolling-box").css({ "position": "relative", "width": "100%", "overflow": "hidden", "top": "20%", "border-radius": "5px", "-moz-user-select": "none", "-webkit-user-select": "none", "-ms-user-select": "none", "user-select": "none", }) // 声明变量 oBox,创建一个div,id名称为"DigsurFallery-Rolling-content"; var oContent = $("<div id='DigsurFallery-Rolling-content'></div>"); // 将 oContent 拼接到 oBox中; oBox.append(oContent); // 为 DigsurFallery-Rolling-content 设置样式; $("#DigsurFallery-Rolling-content").css({ "position": "absolute", "left": 0, "overflow": "hidden", "height": "100%", }) // 循环创建 img标签,将picArray中的值传入每一个img的src中,拼接到 oContent中; for(var i = 0; i < picArray.length; i++) { var oimg = $("<img />") $(oimg).attr('src', picArray[i]); oContent.append(oimg); } // 为 img加样式 ; $("#DigsurFallery-Rolling-box img").css({ "float": "left", "height": "90%", "box-shadow": "0px 0px 11px #211f1f", "-webkit-box-shadow": "0px 0px 11px #211f1f", "-moz-box-shadow": "0px 0px 11px #211f1f", "border-radius": "5px", "margin-top":"5px", }) // 为 DigsurFallery-Rolling-box 设置高度,高度为'window'宽度的35%; $("#DigsurFallery-Rolling-box").css("height", $(window).width() * 0.35); // 声明 BoxoffsetWidth,接收 DigsurFallery-Rolling-box的可视宽度; var BoxoffsetWidth = $("#DigsurFallery-Rolling-box")[0].offsetWidth; // 为DigsurFallery-Rolling-box下的img标签设置 margin-right,值为: DigsurFallery-Rolling-box的可视宽度的3%; $("#DigsurFallery-Rolling-box img").css("margin-right", BoxoffsetWidth / 100 * 3); // 声明变量,获取 DigsurFallery-Rolling-content下img的margin-right的 值; var ImgMarginRight = parseFloat($("#DigsurFallery-Rolling-content img").css('marginRight')); // 设置 DigsurFallery-Rolling-conten 下的img的宽度 为 DigsurFallery-Rolling-box的可视宽度; $("#DigsurFallery-Rolling-content img").css("width", BoxoffsetWidth); // 设置 DigsurFallery-Rolling-content 的宽度,值为 picArray的个数 乘 (DigsurFallery-Rolling-box的可视宽度+ DigsurFallery-Rolling-content下img的margin-right的 值); $("#DigsurFallery-Rolling-content").css("width", picArray.length * (BoxoffsetWidth + ImgMarginRight)); // 设置 speed的速度为1; this.speed = 1; // 判断 HasSlider 的值; if(HasSlider == true) { // 声明 _this = this,作用为指向 DigsurGallery.Rolling ; var _this = this; // 创造函数 move ; function move() { // 创建定时器timer; _this.timer = setInterval(function() { // 设置 DigsurFallery-Rolling-content 的left 为DigsurFallery-Rolling-content的做偏移量 - speed的值; $("#DigsurFallery-Rolling-content").css("left", $("#DigsurFallery-Rolling-content").offset().left - _this.speed); // 做判断,如果 DigsurFallery-Rolling-content 的左偏移量 小于picArray的个数-1乘以图片的可视宽度加上marginright的值 在乘以-1的值; if($("#DigsurFallery-Rolling-content").offset().left < (picArray.length - 1) * (oimg[0].offsetWidth + ImgMarginRight) * -1) { // DigsurFallery-Rolling-content 的left为0; $("#DigsurFallery-Rolling-content").css("left", 0); } }, 1) } // 启动定时器; move(); // 鼠标放上或者离开 容器 'DigsurFallery-Rolling-box'时清除或打开定时器; $("#DigsurFallery-Rolling-box").mouseenter(function() { clearInterval(_this.timer); }).mouseleave(function() { move(); }); } // 判断 HasButton的值; if(HasButton == true) { // 声明 oRetreat 创建 id为 'retreat' 的div; var oRetreat = $("<div id='retreat'></div>"); // 将 oRectreat 拼接到oBox中; oBox.append(oRetreat); // 声明 RetreatSpan,创建 span标签,内容为 < ,后退; var RetreatSpan = $("<span> < </span>") // 将RetreatSpan拼接到oRetreat中; oRetreat.append(RetreatSpan); // 声明oAdvance,创建 id为'advance'的div; var oAdvance = $("<div id='advance'></div>"); // 将oAdvance拼接到oBox中; oBox.append(oAdvance); // 声明AdvanceSpan,创建 span标签,内容为 > ,前进; var AdvanceSpan = $("<span> > </span>") // 将AdvanceSpan拼接到oAdvance中; oAdvance.append(AdvanceSpan); // retreat 的点击函数; $("#retreat").click(function() { // 声明index,获取 DigsurFallery-Rolling-content 的做偏移量 除以 图片的可视宽度的负值; var index = parseInt($("#DigsurFallery-Rolling-content").offset().left / -oimg[0].offsetWidth); // index 的值减1; index--; // 判断 如果index的值小于0的; if(index < 0) { // index 的值 等于 picArrat 的长度减去1; index = picArray.length - 1; } // 声明 temp 等于 图片的可视宽度加上图片的marginright的值 乘 index的 负值 ; var temp = (oimg[0].offsetWidth + ImgMarginRight) * index * -1; // 设置 DigsurFallery-Rolling-content 的left值为 temp的值 $("#DigsurFallery-Rolling-content").css("left", temp); }); // advance 的点击函数 $("#advance").click(function() { // 声明index,获取 DigsurFallery-Rolling-content 的做偏移量 除以 图片的可视宽度的负值; var index = parseInt($("#DigsurFallery-Rolling-content").offset().left / -oimg[0].offsetWidth); // index 的值加1 index++; // 判断 如果index的值大于 picArray的长度; if(index >= picArray.length) { // index 的值为 0; index = 0; } // 声明 temp 等于 图片的可视宽度加上图片的marginright的值 乘 index的 负值 var temp = (oimg[0].offsetWidth + ImgMarginRight) * index * -1; // 设置 DigsurFallery-Rolling-content 的left值为 temp的值 $("#DigsurFallery-Rolling-content").css("left", temp); }); } // 设置点击按钮的大小,需要传入三个值,分别为 最小值 min,和最大值max 和 中间值mid $.fn.fontFlex = function(min, max, mid) { // $this 指向调用的this var $this = this; // 窗口大小改变时函数 $(window).resize(function() { // 为 retreat 设置样式 $("#retreat").css({ "width": "7%", "height": $("#retreat").width() * 2.3, "position": "absolute", "left": 0, "top": "30%", "background-color": "rgba(0, 0, 0, 0.3)", "text-align": "center", "color": "rgba(255,255,255,0.5)", "cursor": "pointer", }).hover(function() { $("#retreat").css("color", "rgba(255,255,255,1)") }, function() { $("#retreat").css("color", "rgba(255,255,255,0.5)") }); // 为 retreat 下的span标签设置 line-height $("#retreat span").css("line-height", $("#retreat").height() + "px"); // 为 advance 设置样式 $("#advance").css({ "width": "7%", "height": $("#advance").width() * 2.3, "position": "absolute", "right": 0, "top": "30%", "background-color": "rgba(0, 0, 0, 0.3)", "text-align": "center", "color": "rgba(255,255,255,0.5)", "cursor": "pointer", }).hover(function() { $("#advance").css("color", "rgba(255,255,255,1)") }, function() { $("#advance").css("color", "rgba(255,255,255,0.5)") }); // 为 advance 下的span标签设置 line-height $("#advance span").css("line-height", $("#advance").height() + "px"); // 声明size,用window的宽度 除以 mid var size = window.innerWidth / mid; // 判断 如果 size的值 小于 min的值 if(size < min) { // size 的值 等于 min的值 size = min; } // 判断 如果size的值大于 max的值 if(size > max) { // size的值等于 max的值 size = max; } // 为调用的的标签设置 'font-size' $this.css("font-size", size + "px"); // 触发函数的时候执行 resize事件 }).trigger('resize'); }; $("#retreat span").fontFlex(23, 60, 20); $("#advance span").fontFlex(23, 60, 20); } ```
爬虫:期望自动打开多个网页中标题包含aaa的网页链接,但始终不成功,求助!
1、需求:期望自动打开页码是1-10的网页中,标题包含aaa的网页链接; 2、目前打开一页是可以的,但是我希望自动执行多个页面; 3、请问我如何重复多次调用nightmare抓取从第1页到第10页的链接数据(即调用10次nightmare)?async和eventproxy都试了,没有成功,求助! ``` 问题对人有帮助,内容完整,我也想知道答案0 问题没有实际价值,缺少关键内容,没有改进余地 1、需求:期望自动打开页码是1-10的网页中,标题包含aaa的网页链接; 2、目前打开一页是可以的,但是我希望自动执行多个页面; 3、请问我如何重复多次调用nightmare抓取从第1页到第10页的链接数据(即调用10次nightmare)?async和eventproxy都试了,没有成功,求助! var c = require('child_process'); var request = require('request'); var cheerio = require('cheerio'); var path = require('path'); var fs = require('fs'); var Nightmare = require('nightmare'); var nightmare = Nightmare({}); // show: true var async = require('async'); var EventProxy = require('eventproxy'); var baseUrl = 'http://www.abc.cn'; var requrl = 'http://www.abc.cn/index.html?uid=123456&pageNum='; //1.先输入要访问的URL var startPage = 1; var endPage = 10; // how to fix the code ... function getPageUrls(page) { nightmare // 加载页面 .goto(requrl + page) // .type('#search_form_input_homepage', 'github nightmare') .inject('js', './js/jquery.min.js') // 点击刷新获得真实数据,不然仅通过链接并不会真实更新数据 .click('.default_pgRefresh') // 等待选择器加载完毕,可以用数值(表示等待时间,单位毫秒),必须!!! .wait(6000) // 浏览器内页面执行,获得列表数据 .evaluate(function () { return document.querySelector('.default_pgContainer').innerHTML; // return document.querySelector('#zero_click_wrapper .c-info__title a').href; }) .end() .then(function (result) { // 重要:函数参数为evaluate的返回值!!! acquireData(result); // 返回数据 }) .catch(function (error) { // console.error('Search failed:', error); }); } function acquireData(data) { var $ = cheerio.load(data); var tableData = $('li').toArray(); // console.log(tableData.length); // console.log(tableData); // li列表数据 let mainLength = tableData.length; var gg = 0, gs = 0; for (var i=0; i<mainLength; i++) { let tempData = tableData[i]; let title = tempData['children'][1].attribs.title; let detailUrl = tempData['children'][1].attribs.href; if (title.indexOf("aaa") > 0) { c.exec('start ' + baseUrl + detailUrl); console.log(baseUrl + detailUrl); } } } ```
急急急,在线等,大家帮我看看哪里的问题
``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <style> #page1 {width: 70%;height: 437px;margin: 0 auto;margin-bottom: 130px;} </style> <body> <div id="page1" class="page Slide"></div> </body> </html> <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> <script src="new_file.js"></script> <script type="text/javascript"> // 创建一个对象,DigsurGallery; DigsurGallery = {}; // 为对象 DigsurGallery,创造一个属性 Rolling; DigsurGallery.Rolling = function() { // 定义变量 speed,作用为速度; this.speed = 1; // 定义变量 timer ,作用为定时器名字; this.timer = null; } // initConfig 是对象下的一个方法,需要传入三个参数,盒子的id,数组的名字,是否需要滚动,是否需要点击按钮; DigsurGallery.Rolling.prototype.initConfig = function(Container, picArray, HasSlider, HasButton) { // 声明一个变量接收 Container; var ContainerName = $("#" + Container); // 声明变量 oBox,创建一个div,id名称为"DigsurFallery-Rolling-box"; var oBox = $("<div id='DigsurFallery-Rolling-box'></div>"); // 将 oBox 拼接到oName中; ContainerName.append(oBox); // 为 DigsurFallery-Rolling-box 设置样式; $("#DigsurFallery-Rolling-box").css({ "position": "relative", "width": "100%", "overflow": "hidden", "top": "20%", "border-radius": "5px", "-moz-user-select": "none", "-webkit-user-select": "none", "-ms-user-select": "none", "user-select": "none", }) // 声明变量 oBox,创建一个div,id名称为"DigsurFallery-Rolling-content"; var oContent = $("<div id='DigsurFallery-Rolling-content'></div>"); // 将 oContent 拼接到 oBox中; oBox.append(oContent); // 为 DigsurFallery-Rolling-content 设置样式; $("#DigsurFallery-Rolling-content").css({ "position": "absolute", "left": 0, "overflow": "hidden", "height": "100%", }) // 循环创建 img标签,将picArray中的值传入每一个img的src中,拼接到 oContent中; for(var i = 0; i < picArray.length; i++) { var oimg = $("<img />") $(oimg).attr('src', picArray[i]); oContent.append(oimg); } // 为 img加样式 ; $("#DigsurFallery-Rolling-box img").css({ "float": "left", "height": "90%", "box-shadow": "0px 0px 11px #211f1f", "-webkit-box-shadow": "0px 0px 11px #211f1f", "-moz-box-shadow": "0px 0px 11px #211f1f", "border-radius": "5px", "margin-top":"5px", }) // 为 DigsurFallery-Rolling-box 设置高度,高度为'window'宽度的35%; $("#DigsurFallery-Rolling-box").css("height", $(window).width() * 0.35); // 声明 BoxoffsetWidth,接收 DigsurFallery-Rolling-box的可视宽度; var BoxoffsetWidth = $("#DigsurFallery-Rolling-box")[0].offsetWidth; // 为DigsurFallery-Rolling-box下的img标签设置 margin-right,值为: DigsurFallery-Rolling-box的可视宽度的3%; $("#DigsurFallery-Rolling-box img").css("margin-right", BoxoffsetWidth / 100 * 3); // 声明变量,获取 DigsurFallery-Rolling-content下img的margin-right的 值; var ImgMarginRight = parseFloat($("#DigsurFallery-Rolling-content img").css('marginRight')); // 设置 DigsurFallery-Rolling-conten 下的img的宽度 为 DigsurFallery-Rolling-box的可视宽度; $("#DigsurFallery-Rolling-content img").css("width", BoxoffsetWidth); // 设置 DigsurFallery-Rolling-content 的宽度,值为 picArray的个数 乘 (DigsurFallery-Rolling-box的可视宽度+ DigsurFallery-Rolling-content下img的margin-right的 值); $("#DigsurFallery-Rolling-content").css("width", picArray.length * (BoxoffsetWidth + ImgMarginRight)); // 设置 speed的速度为1; this.speed = 1; console.log($("#DigsurFallery-Rolling-content").offset().left); console.log(this.speed); console.log((picArray.length - 1) * (oimg[0].offsetWidth + ImgMarginRight) * -1); // 判断 HasSlider 的值; if(HasSlider == true) { // 声明 _this = this,作用为指向 DigsurGallery.Rolling ; var _this = this; // 创造函数 move ; function move() { // 创建定时器timer; _this.timer = setInterval(function() { console.log($("#DigsurFallery-Rolling-content").css('left')); console.log($("#DigsurFallery-Rolling-content").offset().left); console.log(_this.speed); console.log((picArray.length - 1) * (oimg[0].offsetWidth + ImgMarginRight) * -1); // 设置 DigsurFallery-Rolling-content 的left 为DigsurFallery-Rolling-content的做偏移量 - speed的值; $("#DigsurFallery-Rolling-content").css("left", $("#DigsurFallery-Rolling-content").offset().left - _this.speed); // 做判断,如果 DigsurFallery-Rolling-content 的左偏移量 小于picArray的个数-1乘以图片的可视宽度加上marginright的值 在乘以-1的值; if($("#DigsurFallery-Rolling-content").offset().left < (picArray.length - 1) * (oimg[0].offsetWidth + ImgMarginRight) * -1) { // DigsurFallery-Rolling-content 的left为0; $("#DigsurFallery-Rolling-content").css("left", 0); } }, 1000) } // 启动定时器; move(); // 鼠标放上或者离开 容器 'DigsurFallery-Rolling-box'时清除或打开定时器; $("#DigsurFallery-Rolling-box").mouseenter(function() { clearInterval(_this.timer); }).mouseleave(function() { move(); }); } // 判断 HasButton的值; if(HasButton == true) { // 声明 oRetreat 创建 id为 'retreat' 的div; var oRetreat = $("<div id='retreat'></div>"); // 将 oRectreat 拼接到oBox中; oBox.append(oRetreat); // 声明 RetreatSpan,创建 span标签,内容为 < ,后退; var RetreatSpan = $("<span> < </span>") // 将RetreatSpan拼接到oRetreat中; oRetreat.append(RetreatSpan); // 声明oAdvance,创建 id为'advance'的div; var oAdvance = $("<div id='advance'></div>"); // 将oAdvance拼接到oBox中; oBox.append(oAdvance); // 声明AdvanceSpan,创建 span标签,内容为 > ,前进; var AdvanceSpan = $("<span> > </span>") // 将AdvanceSpan拼接到oAdvance中; oAdvance.append(AdvanceSpan); // retreat 的点击函数; $("#retreat").click(function() { // 声明index,获取 DigsurFallery-Rolling-content 的做偏移量 除以 图片的可视宽度的负值; var index = parseInt($("#DigsurFallery-Rolling-content").offset().left / -oimg[0].offsetWidth); // index 的值减1; index--; // 判断 如果index的值小于0的; if(index < 0) { // index 的值 等于 picArrat 的长度减去1; index = picArray.length - 1; } // 声明 temp 等于 图片的可视宽度加上图片的marginright的值 乘 index的 负值 ; var temp = (oimg[0].offsetWidth + ImgMarginRight) * index * -1; // 设置 DigsurFallery-Rolling-content 的left值为 temp的值 $("#DigsurFallery-Rolling-content").css("left", temp); }); // advance 的点击函数 $("#advance").click(function() { // 声明index,获取 DigsurFallery-Rolling-content 的做偏移量 除以 图片的可视宽度的负值; var index = parseInt($("#DigsurFallery-Rolling-content").offset().left / -oimg[0].offsetWidth); // index 的值加1 index++; // 判断 如果index的值大于 picArray的长度; if(index >= picArray.length) { // index 的值为 0; index = 0; } // 声明 temp 等于 图片的可视宽度加上图片的marginright的值 乘 index的 负值 var temp = (oimg[0].offsetWidth + ImgMarginRight) * index * -1; // 设置 DigsurFallery-Rolling-content 的left值为 temp的值 $("#DigsurFallery-Rolling-content").css("left", temp); }); } // 设置点击按钮的大小,需要传入三个值,分别为 最小值 min,和最大值max 和 中间值mid $.fn.fontFlex = function(min, max, mid) { // $this 指向调用的this var $this = this; // 窗口大小改变时函数 $(window).resize(function() { // 为 retreat 设置样式 $("#retreat").css({ "width": "7%", "height": $("#retreat").width() * 2.3, "position": "absolute", "left": 0, "top": "30%", "background-color": "rgba(0, 0, 0, 0.3)", "text-align": "center", "color": "rgba(255,255,255,0.5)", "cursor": "pointer", }).hover(function() { $("#retreat").css("color", "rgba(255,255,255,1)") }, function() { $("#retreat").css("color", "rgba(255,255,255,0.5)") }); // 为 retreat 下的span标签设置 line-height $("#retreat span").css("line-height", $("#retreat").height() + "px"); // 为 advance 设置样式 $("#advance").css({ "width": "7%", "height": $("#advance").width() * 2.3, "position": "absolute", "right": 0, "top": "30%", "background-color": "rgba(0, 0, 0, 0.3)", "text-align": "center", "color": "rgba(255,255,255,0.5)", "cursor": "pointer", }).hover(function() { $("#advance").css("color", "rgba(255,255,255,1)") }, function() { $("#advance").css("color", "rgba(255,255,255,0.5)") }); // 为 advance 下的span标签设置 line-height $("#advance span").css("line-height", $("#advance").height() + "px"); // 声明size,用window的宽度 除以 mid var size = window.innerWidth / mid; // 判断 如果 size的值 小于 min的值 if(size < min) { // size 的值 等于 min的值 size = min; } // 判断 如果size的值大于 max的值 if(size > max) { // size的值等于 max的值 size = max; } // 为调用的的标签设置 'font-size' $this.css("font-size", size + "px"); // 触发函数的时候执行 resize事件 }).trigger('resize'); }; $("#retreat span").fontFlex(23, 60, 20); $("#advance span").fontFlex(23, 60, 20); } var Rotate = new DigsurGallery.Rolling(); var arr = ["Image/1.jpg", "Image/2.jpg", "Image/3.jpg", "Image/4.jpg", "Image/5.jpg", "Image/6.jpg", "Image/7.jpg"]; Rotate.initConfig('page1', arr, true, true); </script> ``` 轮播倒着走去了啊,点击前进也没有用了,谢谢,在线等
.net comet在网上下载了一套简单的源码却一直调试不出来 可能问的问题比较基础 各位大神见谅
在网上查了半天消息推送 最后下载了一套comet+jquery简单源码示例 代码很简单就两个类 然而我初学这个东西 一直没有调试成功 看不大懂 求大神指导 下面贴源码 首先是config ``` <httpHandlers> <add path="comet_broadcast.asyn" type="AsnyHandler" verb="POST,GET"/> </httpHandlers> ``` 然后是AsnyHandler类的代码 ``` using System; using System.Collections.Generic; using System.Web; using System.Threading; /// <summary> /// Summary description for AsnyHandler /// </summary> public class AsnyHandler:IHttpAsyncHandler { public AsnyHandler() { } public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, object extraData) { //myAsynResult为实现了IAsyncResult接口的类,当不调用cb的回调函数时,该请求不会返回到给客户端,会一直处于连接状态 myAsynResult asyncResult = new myAsynResult(context, cb, extraData); String content = context.Request.Params["content"]; //向Message类中添加该消息 Messages.Instance().AddMessage(content, asyncResult); return asyncResult; } #region 不必理会 public void EndProcessRequest(IAsyncResult result) { } public bool IsReusable { get { return false; ; } } public void ProcessRequest(HttpContext context) { } #endregion } public class myAsynResult : IAsyncResult { bool _IsCompleted = false; private HttpContext context; private AsyncCallback cb; private object extraData; public myAsynResult(HttpContext context, AsyncCallback cb, object extraData) { this.context = context; this.cb = cb; this.extraData = extraData; } private string _content; public string Content { get {return _content;} set{_content=value;} } #region IAsyncResult接口 public object AsyncState { get { return null; } } public System.Threading.WaitHandle AsyncWaitHandle { get { return null; } } public bool CompletedSynchronously { get { return false; } } public bool IsCompleted { get { return _IsCompleted; } } #endregion //在Message类中的添加消息方法中,调用该方法,将消息输入到客户端,从而实现广播的功能 public void Send(object data) { context.Response.Write(this.Content); if (cb!=null) { cb(this); } _IsCompleted = true; ; } } ``` Messages类的代码 ``` using System; using System.Collections.Generic; using System.Web; /// <summary> /// Summary description for Messages /// </summary> public class Messages { //记录所有请求的客户端 List<myAsynResult> clients = new List<myAsynResult>(); #region 实现该类的单例 private static readonly Messages _Instance = new Messages(); private Messages() { } public static Messages Instance() { return _Instance; } #endregion public void AddMessage(string content,myAsynResult asyncResult) { //当传入的内容为"-1"时,表示为建立连接请求,即为了维持一个从客户端到服务器的连接而建立的连接 //此时将该连接保存到 List<myAsynResult> clients中,待再有消息发送过来时,该连接将会被遍历,并且会将该连接输出内容后,结束该连接 if (content=="-1") { clients.Add(asyncResult); } else { //将当前请求的内容输出到客户端 asyncResult.Content = content; asyncResult.Send(null); //否则将遍历所有已缓存的client,并将当前内容输出到客户端 foreach (myAsynResult result in clients) { result.Content = content; result.Send(null); } //清空所有缓存 clients.Clear(); } } } ``` 前端请求代码 ``` $(document).ready(function () { function send() { //向comet_broadcast.asyn发送请求,消息体为文本框content中的内容,请求接收类为AsnyHandler $.post("comet_broadcast.asyn", { content: $("#content").val() }); //清空内容 $("#content").val(""); } function wait() { $.post("comet_broadcast.asyn", { content: "-1" }, function (data, status) { var result = $("#divResult"); result.html(result.html() + "<br/>" + data); //服务器返回消息,再次立连接 wait(); }, "html" ); } //初始化连接 wait(); $("#btnSend").click(function () { send(); }); $("#content").keypress(function (event) { if (event.keyCode == 13) { send(); } }); }); ``` 这是最初的源码 在本地调试的时候会提示找不到comet_broadcast.asyn这个文件, 源码中也确实没有这个文件 这也是我最大的疑问 然后网上查了下 有人说把后缀改为.ashx也就是一般处理程序 不知道这样对不对 却不知道这个里面的代码改怎么写 怎样去调用AsnyHandler类里面的BeginProcessRequest方法 囧 这对只会一些基础代码的我来说确实有点难度 求哪位大神能够指导一下 谢谢了
jsp页面获取值之后的处理
1.情况描述: 这是一个修改的功能: 在java后台往前段传值的时候,有个其他选择部门,部门为横向成列(需求:纵向成列),,怎么搞? 点击选择的时候应为调用了回调函数,所以才纵向成列。 附上代码: jquery://其他发生部门 $("#otheroccureddepartid").val("<%=orgidInfo%>");//其他发生部门id $("#otheroccureddepartname").val("<%=orgnameInfo%>");//其他发生部门name jQuery("#seid_otheroccureddepartid").click(function() { var val = jQuery(":hidden[name='occuredorgid']").val(); if(val == "") { dialogAlert("必须先选择机构!"); jQuery("#btn_occuredOrg").focus(); } else { locate_tree_window('<%=contextPath%>','getDepartmentByUporgankey','forms[0]','otheroccureddepartid,otheroccureddepartname','checkbox','&uporgankey=' + val,'addResDept'); } }); //其他发生部门删除 $("#deid_otheroccureddepartid").click(function() { $("select[name='other_organkey'] option:selected").remove(); var ids = ""; var names = ""; $("select[name='other_organkey'] option").each(function(i) { ids += $(this).val() + ","; names += $(this).text() + ","; }); $("#otheroccureddepartid").val(ids.substr(0, ids.length - 1)); $("#otheroccureddepartname").val(names.substr(0, names.length - 1)); }); //其它发生部门回调函数 function addResDept() { var ids = $("#otheroccureddepartid").val().split(","); var names = $("#otheroccureddepartname").val().split(","); if ($("#otheroccureddepartid").val() != "") { var errorElement = $("select[name='other_organkey']").next( "LABEL.error:first"); $(errorElement).remove(); } if ($("#otheroccureddepartid").val() != "") { $("select[name='other_organkey']").empty(); if (ids.length == names.length) { for ( var i = 0; i < ids.length; i++) { if ($("select[name='other_organkey']").find("option[value='" + ids[i] + "']").val() == undefined) { $("select[name='other_organkey']").append("<option selected='selected' value='"+ids[i]+"'>"+names[i]+"</option>"); } } } } } 页面部分: <td nowrap="nowrap"> <html:hidden property="otheroccureddepartid" styleId="otheroccureddepartid"/> <html:hidden property="otheroccureddepartname" styleId="otheroccureddepartname"/> <html:select property="other_organkey" size="6" multiple="multiple" styleClass="required" style="width:150px"> <html:options collection="orgMap" property="label" labelProperty="value" /> </html:select> <a class="opera_btn" href="javascript:void(0);" id="seid_otheroccureddepartid"><em><b class="btn_checkmore">多选</b></em></a> <a class="opera_btn" href="javascript:void(0);" id="deid_otheroccureddepartid"><em><b class="btn_delete">删除</b></em></a> </tr> 第一张图片为:页面传值过来的图片(页面传值过来部门的排列也要和第二张图片一样), 第二张图片为:点击多选过的页面(要求是这样) ![图片说明](https://img-ask.csdn.net/upload/201609/02/1472783105_12987.jpg) 各位大神处处主意![图片说明](https://img-ask.csdn.net/upload/201609/02/1472783062_223311.jpg)
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时想着能进去就不错了,管他哪个岗呢,就同意了面试...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
兼职程序员一般可以从什么平台接私活?
这个问题我进行了系统性的总结,以下将进行言简意赅的说明和渠道提供,希望对各位小猿/小媛们有帮助~ 根据我们的经验,程序员兼职主要分为三种:兼职职位众包、项目整包和自由职业者驻场。 所谓的兼职职位众包,指的是需求方这边有自有工程师配合,只需要某个职位的工程师开发某个模块的项目。比如开发一个 app,后端接口有人开发,但是缺少 iOS 前端开发工程师,那么他们就会发布一个职位招聘前端,来配合公司一...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
写了很久,这是一份最适合/贴切普通大众/科班/非科班的『学习路线』
说实话,对于学习路线这种文章我一般是不写的,大家看我的文章也知道,我是很少写建议别人怎么样怎么样的文章,更多的是,写自己的真实经历,然后供大家去参考,这样子,我内心也比较踏实,也不怕误导他人。 但是,最近好多人问我学习路线,而且很多大一大二的,说自己很迷茫,看到我那篇 普普通通,我的三年大学 之后很受激励,觉得自己也能行,(是的,别太浪,你一定能行)希望我能给他个学习路线,说
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
致 Python 初学者
文章目录1. 前言2. 明确学习目标,不急于求成,不好高骛远3. 在开始学习 Python 之前,你需要做一些准备2.1 Python 的各种发行版2.2 安装 Python2.3 选择一款趁手的开发工具3. 习惯使用IDLE,这是学习python最好的方式4. 严格遵从编码规范5. 代码的运行、调试5. 模块管理5.1 同时安装了py2/py35.2 使用Anaconda,或者通过IDE来安装模
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车? 某胡同口的煎饼摊一年能卖出多少个煎饼? 深圳有多少个产品经理? 一辆公交车里能装下多少个乒乓球? 一
碎片化的时代,如何学习
今天周末,和大家聊聊学习这件事情。 在如今这个社会,我们的时间被各类 APP 撕的粉碎。 刷知乎、刷微博、刷朋友圈; 看论坛、看博客、看公号; 等等形形色色的信息和知识获取方式一个都不错过。 貌似学了很多,但是却感觉没什么用。 要解决上面这些问题,首先要分清楚一点,什么是信息,什么是知识。 那什么是信息呢? 你一切听到的、看到的,都是信息,比如微博上的明星出轨、微信中的表情大战、抖音上的...
so easy! 10行代码写个"狗屁不通"文章生成器
前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。 背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法 不过,当我看了源代码之后 这程序不到50行 尽管我有多年的Python经验,但我竟然一时也没有看懂 当然啦,原作者也说了,这个代码也是在无聊中诞生的,平时撸码是不写中文变量名的, 中文...
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的回答,对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalking,作者吴晟、刘浩杨 等等 仓库地址: apache/skywalking 更...
相关热词 c#处理浮点数 c# 生成字母数字随机数 c# 动态曲线 控件 c# oracle 开发 c#选择字体大小的控件 c# usb 批量传输 c#10进制转8进制 c#转base64 c# 科学计算 c#下拉列表获取串口
立即提问