通过对《锋利的jQuery》(第二版)一书的学习,发现此书讲解通俗易懂,是学习jQuery的一本很好的指导书,特作如下总结。此书主要讲解了jQuery的常用操作,包括认识jQuery,jQuery选择器,jQuery中的DOM操作,jQuery中的事件和动画,jQuery对表单、表格的操作及更多应用,jQuery与Ajax的应用等。
第一章 认识jQuery
jQuery强调的理念是写得少,做得多(write less,do more),其具有链式操作方式、隐式迭代、行为层和结构层的分离等诸多优点。
获取jQuery的最新版本:http://jquery.com/
1、默认情况下jQuery用$作为自身的快捷方式,并且以下两种形式等价:
1 $(document).ready(function(){ 2 //代码 3 }); 4 相当于 5 $(function(){ 6 //代码 7 });
2、jQuery对象和DOM对象的相互转换
(1)jQuery对象转换成DOM对象
jQuery提供了两种方法将一个jQuery对象转换成DOM对象,即[index]和get(index)。
1 var $ck = $("#ck");//jQuery对象 2 var ck= $ck[0];//或者var ck= $ck.get(0); 3 alert(ck.checked);//检测这个checkbox是否被选中
(2)DOM对象转换成jQuery对象
只需要使用$()把DOM对象包装起来,就可以获得一个jQuery对象了。
1 var ck= document.getElementById("ck");//DOM对象 2 var $ck = $(ck);
第二章 jQuery选择器
1 //普通js判断获得元素是否存在 2 if(document.getElementById("mytt")){ 3 //do something 4 } 5 6 //juery判断获得元素是否存在 7 if($("#mytt").length > 0){ 8 //do something 9 }
1 //如果mytt元素不存在,则页面出现异常 2 document.getElementById("mytt").style.color = "red"; 3 4 //即使页面没有名称为mytt的元素,也不会报错,它是一个jQuery对象 5 $("#mytt").css("color","red");
常用选择器
1、基本选择器:
1 //注意:基本选择器中有id选择器,但是没有name选择器 2 $("#mytt") //根据给定的id选择匹配的元素,此处是选取id为mytt的元素,返回:单个元素 3 $(".myttClass") //根据给定的样式名称选择匹配的元素,此处是选取所有class为myttClass的元素,返回:集合元素 4 $("p") //根据给定的元素名称选择匹配的元素,此处是选取所有的元素,返回:集合元素 5 $("#mytt,.myttClass,p") //根据给定的规则选择匹配的元素,此处是选取id为mytt的元素、class为myttClass的元素和
元素,返回:集合元素 6 $("*") //选择页面所有元素,返回:集合元素
2、层次选择器:
1 $("div span") //选择所有元素下的所有元素(即所有后代元素,包括儿子和孙子等层的),返回:集合元素 2 $("div>span") //选择所有元素下的子元素(仅子元素),返回:集合元素 3 $(".myttClass+div") //选择class样式名称为myttClass的下一个元素(即紧接在myttClass元素后的同辈元素),等价于$(".myttClass").next("div"),返回:集合元素 4 $(".myttClass~div") //选择样式名称为myttClass之后的所有元素(myttClass元素之后的同辈元素),等价于 $(".myttClass").nextAll("div"),返回:集合元素 5 //注意:$(".myttClass").siblings("div") //选择样式名称为myttClass的元素的所有同辈元素(无论前后),返回集合元素3、过滤选择器
(1)、基本过滤选择器
1 //注意:索引index从0开始 2 $("div:first") //选择所有元素中的第一个元素,返回:单个元素 3 $("div:last") //选择所有元素中的最后一个元素,返回:单个元素 4 $("div:not(.myttClass)") //选择所有样式不包括myttClass的元素,返回:集合元素 5 $("div:even") //选择所有索引是偶数的元素,返回:集合元素 6 $("div:odd") //选择所有索引是奇数的元素,返回:集合元素 7 $("div:eq(index)") //选择索引等于index的元素,eq为equals的缩写,返回:单个元素 8 $("div:gt(index)") //选择所有索引大于index的元素,gt为great than的缩写,返回:集合元素 9 $("div:lt(index)") //选择所有索引小于index的元素,lt为less than的缩写,返回:集合元素 10 $(":header") //选择所有标题元素(如h1,h2,h3等),返回:集合元素 11 $("div:animated") //选择所有正在执行动画的元素,返回:集合元素 12 $(":focus") //选择当前获取焦点的元素,返回:集合元素(2)、内容过滤选择器
1 $("div:contains('我')") //选择所有文本内容包含"我"的元素,返回:集合元素 2 $("div:empty") //选择所有不包含子元素或者文本的空元素,返回:集合元素 3 $("div:has(p)") //选择所有含有匹配子元素的
元素,返回:集合元素 4 $("div:parent") //选择所有含有子元素或者文本的元素,返回:集合元素(3)、可见性选择器
1 $(":hidden") //选择所有不可见的元素(如:、和等元素),返回:集合元素 2 $(":visible") //选择所有可见的元素,返回:集合元素(4)、属性过滤选择器
1 $("[id]") //选择所有含有id属性的元素,返回:集合元素 2 $("[class=myttClass]") //选择所有class属性值是myttClass的元素,返回:集合元素 3 $("[class!=myClass]") //选择所有class属性值不是myClass的元素,注意:没有title属性的元素也会被选取,返回:集合元素 4 $("[title^=tt]") //选择所有title属性值以tt开始的元素,返回:集合元素 5 $("[title$=tt]") //选择所有title属性值以tt结束的元素,返回:集合元素 6 $("[title*=tt]") //选择所有title属性值含有tt的元素,返回:集合元素 7 $('[title|="tt"]') //选择所有title属性值等于tt或以tt为前缀(该字符串后跟一个连字符'-')的元素,返回:集合元素 8 $('[title~="tt"]') //选择所有title属性值用空格分割的值中包含字符tt的元素,返回:集合元素 9 $("div[id][class=myttClass]") //选择所有含有id属性的并且class属性值是myttClass的元素,返回:集合元素(5)、子元素过滤选择器
1 //index从1开始 2 $(":nth-child(index/even/odd)") //选择每个父元素下的第index/偶数/奇数个子元素,返回:集合元素 3 $(":first-child") //选择每个父元素下的第一个子元素,返回:集合元素 4 $(":last-child") //选择每个父元素下的最后一个子元素,返回:集合元素 5 $("ul li:only-child") //在元素中选择只有一个
- 元素的子元素,返回:集合元素
(6)、表单对象属性选择器
1 $("#myttForm:enabled") //选择id属性为myttForm表单内的所有可用元素,返回:集合元素 2 $("#myttForm:disabled") //选择id属性为myttForm表单内的所有不可用元素,返回:集合元素 3 $("input:checked") //选择所有被选中的元素(单选框、复选框),返回:集合元素 4 $("select:selected") //所有被选中的选项元素(下拉列表),返回:集合元素4、表单选择器
1 $(":input") //选择所有、注意:
$(":input")和$("input")是不同的选择器,$(":input")是表单选择器可以选择、
第三章 jQuery中的DOM操作
1你最喜欢的水果是?
23
- 苹果
4- 橘子
5- 菠萝
61、查找节点
(1)查找元素节点
1 //使用上面介绍的jQuery选择器来完成查找元素 2 var $li = $("ul li:eq(1)"); // 获取第二个元素节点 3 var li_txt = $li.text(); // 输出第二个 元素节点的text 4 alert(li_txt);//得到橘子 (2)查找属性节点
1 var $para = $("p");//获取节点 2 var p_txt = $para.attr("title");//获的
元素节点属性title值 3 alert(p_txt);//得到"choose your favourite fruit"
2、创建节点
1 var $li_1 = $("香蕉 ");//创建一个元素,包括元素节点,文本节点和属性节点,其中title='banana'就是创建的属性节点 2 var $li_2 = $(" 雪梨 ");//创建一个元素,包括元素节点,文本节点和属性节点,其中title='pear' 就是创建的属性节点 3 var $parent = $("ul");//获取 节点。
- 的父节点 4 $parent.append($li_1);//添加到
节点中,使之能在网页中显示 5 $parent.append($li_2);//等价于:$parent.append($li_1).append($li_2);
3、插入节点
1 $("p").append("grape");//结果为你最喜欢的水果是?grape
4、删除节点
1 //remove()方法的返回值是一个指向已被删除的节点的引用 2 var $li = $("ul li:eq(1)").remove(); //获取第二个元素节点后,将它从网页中删除 3 $li.appendTo("ul");//把刚才删除的节点又重新添加到 元素里
5、复制节点
1 //使用clone()方法 2 $(this).clone().appendTo("ul"); //复制当前点击的节点,并将它追加到元素 3 $(this).clone(true).appendTo("ul"); //注意参数true,复制元素的同事复制元素中所绑定的事件
6、替换节点
1 //replaceWith()和replaceAll()方法 2 $("p").replaceWith("你最不喜欢的水果是?"); 3 //同样的实现: 4 $("你最不喜欢的水果是?").replaceAll("p");7、包裹节点
1 //使用wrap()方法 2 $("strong").wrap("");//用元素把元素包裹起来。即你最喜欢的水果是?
8、属性操作
1 //使用attr()方法来获取和设置元素属性 2 //设置元素的属性'title' 3 $("p").attr("title","choose"); 4 5 //获取
元素的属性'title' 6 alert( $("p").attr("title")); 7 8 //使用removeAttr()方法来删除元素的属性 9 //删除
元素的属性'title' 10 $("p").removeAttr("title");
9、样式操作
此处获取和修改的是css样式是class属性。
1 //1.使用attr()方法来获取样式和设置样式 2 $("p").attr("class","hign");//设置元素的class 3 alert( $("p").attr("class"));//获取
元素的'class' 4 5 //2.使用addClass()方法来追加样式 6 $("p").addClass("another");//给
元素追加'another'样式类 7 8 //3.使用removeClass()方法来移除样式 9 $("p").removeClass()("high another");//使用空格来删除多个样式 10 11 //使用toggle()方法来控制行为上的重复切换 12 $toggleBtn.toggle(function(){ 13 //显示元素 14 },function(){ 15 //隐藏元素 16 }) 17 18 //4.toggleClass()方法来控制样式上的重复切换 19 $("p").toggleClass("another");//重复切换类名"another" 20 21 //5.hasClass()判断是否含有某个样式 22 $("p").hasClass("another");
10、设置和获取HTML、文本和值
1 //1.html()方法 2 alert($("p").html());//获取元素的HTML代码 3 $("p").html("你最喜欢的水果是?");//设置
元素的HTML代码 4 5 //2.text()方法 6 alert($("p").text());//获取
元素的文本 7 $("p").text("你最喜欢的水果是?");//设置
元素的文本 8 9 //3.val()方法 10 alert($(this).val());//获取按钮的value值 11 $(this).val("我被点击了!");//设置按钮的value值 12 13 //focus()方法相当于js中的onfocus()方法,blur()方法相当与js中的onblur()方法 14 //defaultValue属性包含该表单元素的初始值
11、遍历节点
children()方法用于取得匹配元素的子元素集合。
next()方法取得匹配元素后面紧邻的同辈元素。
prev()方法取得匹配元素前面紧邻的同辈元素。
siblings()方法取得匹配元素前后所有的同辈元素。12、CSS-DOM操作
此处获取和修改的是css样式是style属性。
主要有css()方法、width()方法、height()方法、offset()方法、position()方法、scollTop()和scroLeft()方法等。
1 //此处获取和修改的是css样式是style属性 2 //使用css()方法获取或者设置元素的样式属性 3 alert($("p").css("color"));//获取元素的color 4 $("p").css("color","red");//设置
元素的color
第四章 jQuery中的事件和动画
jQuery中的事件
1、加载DOM
1 //jQuery代码: 2 $(window).load(function(){ 3 //编写代码 4 }) 5 //等价于JavaScript代码: 6 window.onload=function(){ 7 //编写代码 8 }1 $(document).reday(function(){ 2 //编写代码 3 }) 4 //等价于 5 $(function(){ 6 //编写代码 7 })2、事件绑定
在文档装在完成后,如果打算为元素绑定事件来完成操作,则可以使用bind()方法来对匹配元素进行特定事件的绑定,bind()方法的调用格式为:
bind(type [, data], fn);
1 $(function(){ 2 $("#panel h5.head").bind("click",function(){ 3 $(this).next().show(); 4 }) 5 }) 6 //可以简写为: 7 $(function(){ 8 $("#panel h5.head").click(function(){ 9 $(this).next().show(); 10 }) 11 })3、合成事件
jQuery有两个合成事件:hover()方法和toggle()方法。
hover()方法用于模拟光标悬停事件,语法结构为hover(enter,leave),当光标移动到元素上是,会触发指定的第1个函数(enter);当光标移出这个元素时,会触发指定的第2个函数(leave)。
1 $(function(){ 2 $("#panel h5.head").hover(function(){ 3 $(this).next().show(); 4 },function(){ 5 $(this).next().hide(); 6 }) 7 })toggle()方法用于模拟鼠标连续单击事件,语法格式为toggle(fn1,fn2,...fnN),每次单击元素,都会依次执行fn。
1 $(function(){ 2 $("#panel h5.head").toggle(function(){ 3 $(this).addClass("highlight"); 4 $(this).next().show(); 5 },function(){ 6 $(this).removeClass("highlight"); 7 $(this).next().hide(); 8 }); 9 })4、事件冒泡
event.stopPropagation()方法停止事件冒泡;
event.preventDefault()方法阻止默认行为;
5、事件对象的属性
event.type可以获取到事件的类型;
event.stopPropagation()方法停止事件冒泡;
event.preventDefault()方法阻止默认行为;
event.target获取到触发事件的元素;
event.relatedTarget获取到相关元素;
event.pageX和event.pageY获取到光标相对于页面的x坐标和y坐标;
event.which获取鼠标单击时的左、中、右键;
event.metaKey获取
按键; 6、移除事件
使用unbind([type],[data])方法
1 //移除click中的所有事件 2 $('#delAll').click(function(){ 3 $('#btn').unbind("click");//移除click中的所有事件 4 }); 5 6 //移除click中的myFun2事件 7 $('#delTwo').click(function(){ 8 $('#btn').unbind("click",myFun2);//移除click中的myFun2事件 9 });7、模拟操作
trigger()方法完成模拟操作
1 $('#btn').trigger("click");//模拟单击操作 2 //可简写为 3 $('#btn').click();jQuery中的动画
1、show()方法和hide()方法
show()方法会将元素的display样式改为"block"或者"inline",hide()方法会将元素的display样式改为"none"。方法中可以带参数来控制显示或者隐藏的速度。
1 $(function(){ 2 $("#panel h5.head").toggle(function(){ 3 $(this).next().hide(); 4 },function(){ 5 $(this).next().show(); 6 }) 7 })2、fadeIn()方法和fadeOut()方法
fadeIn()方法和fadeOut()方法改变元素的不透明度,即淡入淡出效果。
1 $(function(){ 2 $("#panel h5.head").toggle(function(){ 3 $(this).next().fadeOut(); 4 },function(){ 5 $(this).next().fadeIn(); 6 }) 7 })3、slideUp()方法和slideDown()方法
slideUp()方法和slideDown()方法会改变元素的高度,slideUp()方法由上到下缩短隐藏,slideDown()由上至下延伸显示。
1 $(function(){ 2 $("#panel h5.head").toggle(function(){ 3 $(this).next().slideUp(); 4 },function(){ 5 $(this).next().slideDown(); 6 }) 7 })4、自定义动画animate()
1 $(function(){ 2 $("#panel").click(function(){ 3 $(this).animate({left: "500px"}, 3000); 4 }) 5 })第五章 jQuery对表单、表格的操作及更多应用
1 //复选框全选或不全选 2 $("#CheckedAll").click(function(){ 3 //所有checkbox跟着全选的checkbox走 4 $('[name=items]:checkbox').attr("checked", this.checked ); 5 }); 6 7 $('[name=items]:checkbox').click(function(){ 8 //定义一个临时变量,避免重复使用同一个选择器选择页面中的元素,提升程序效率。 9 var $tmp=$('[name=items]:checkbox'); 10 //用filter方法筛选出选中的复选框。并直接给CheckedAll赋值。 11 $('#CheckedAll').attr('checked',$tmp.length==$tmp.filter(':checked').length); 12 }); 13 14 //表格奇偶行才一共不同的样式 15 $("tr:odd").addClass("oddTr"); //给奇数行添加oddTr样式 16 $("tr:even").addClass("evenTr"); //给偶数行添加evenTr样式第六章 jQuery与Ajax的应用
Ajax的核心是XMLHttpRequest对象,它是Ajax实现的关键——发送异步请求、接收相应即执行回调都是通过他来完成的。
jQuery对Ajax操作进行了封装,在jQuery中$.ajax()方法属于最底层的方法,第2层是load()、$.get()和$.post()方法,第3层是$.getScript()和$.getJSON()方法。
load()方法是jQuery中最为简单和常用的jQuery方法,能载入远程HTML代码和插入DOM中,一般用于获取静态的数据文件,语法格式为:load(url [,data] [,callback])。
1 //无参数传递,则是get方式;有参数传递,则是post方式 2 $(function(){ 3 $("#send").click(function(){ 4 $("#resText").load("test.html",function (responseText, textStatus, XMLHttpRequest){ 5 alert( $(this).html() );//在这里this指向的是当前的DOM对象,即 $("#iptText")[0] 6 alert(responseText);//请求返回的内容 7 alert(textStatus);//请求状态:success,error 8 alert(XMLHttpRequest);//XMLHttpRequest对象 9 }); 10 }) 11 })$.get()方法和$.post()方法
$.get()方法的语法结构为:$.get(url [,data] [,callback] [,type]),$.post()方法结构与其类似,只是提交方式不一样。
其中url表示被加载的数据的url地址;data表示发送到服务器的数据的键/值对象;callback表示当数据被加载时,所执行的函数;type表示被返回的数据的类型(html,xml,json,text等)。form表单中的GET与POST的区别:
GET请求的数据会附在URL地址之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连,而且提交的数据最多只能是2KB,而且GET方式提交的数据会给浏览器缓存起来,从浏览器的历史记录中可以找到,所以安全性较差;
POST请求会把提交的数据放置在HTTP包的包体中,不会附着在地址栏中,提交的数据理论上没有大小限制,所以POST的安全性要比GET高。1 $(function(){ 2 $("#send").click(function(){ 3 $.get("get3.php", { 4 username : $("#username").val() , 5 content : $("#content").val() 6 }, function (data, textStatus){ 7 var username = data.username; 8 var content = data.content; 9 var txtHtml = "
1 $(function(){ 2 $("#send").click(function(){ 3 $.post("get3.php", { 4 username : $("#username").val() , 5 content : $("#content").val() 6 }, function (data, textStatus){ 7 var username = data.username; 8 var content = data.content; 9 var txtHtml = ""; 10 $("#resText").html(txtHtml); // 把返回的数据添加到页面上 11 },"json"); 12 }) 13 })"+username+":
"+content+"
$.getScript()方法和$.getJSON()方法
$.getScript(url[,data][,callback])方法,相当于$.get()方法的Script版本,相当于指定type参数为"script";$.getJson(url[,data][,callback])方法,相当于$.get()方法的Json版本,相当于指定type参数为"json";
1 $(function(){ 2 $.getScript('jquery.color.js',function(){ 3 $("加载JavaScript完毕
").appendTo("body"); 4 $("#go").click(function(){ 5 $(".block").animate( { backgroundColor: 'pink' }, 1000) 6 .animate( { backgroundColor: 'blue' }, 1000); 7 }); 8 }); 9 })
1 $(function(){ 2 $('#send').click(function() { 3 $.getJSON('test.json', function(data) { 4 $('#resText').empty(); 5 var html = ''; 6 $.each( data , function(commentIndex, comment) { 7 html += ''; 8 }) 9 $('#resText').html(html); 10 }) 11 }) 12 })' + comment['username'] + ':
' + comment['content'] + '
$.ajax()方法
$.ajax()方法的语法格式为:$.ajax(options),参数以key/value的形式存在。
其中url表示发送请求的地址;dataType表示预期从服务器返回的数据类型;type表示请求方式,默认为GET;data表示发送到服务器的数据;async表示发送同步/异步请求,默认为true,表示异步;success表示请求成功后调用的回调函数;error表示请求失败时调用的回调函数。
注意:同步请求将锁住浏览器,用户的其他操作必须等待请求完成后才可以继续执行。1 $(function(){ 2 $('#send').click(function() { 3 $.ajax({ 4 type: "GET", 5 url: "http://api.flickr.com/services/feeds/photos_public.gne?tags=car&tagmode=any&format=json&jsoncallback=?", 6 dataType: "jsonp", 7 success : function(data){ 8 $.each(data.items, function( i,item ){ 9 $(" ").attr("src", item.media.m ).appendTo("#resText"); 10 if ( i == 3 ) { 11 return false; 12 } 13 }); 14 } 15 }); 16 }); 17 })Cookie与Session的区别:
Cookie是早期的会话跟踪技术,它会将信息保存到客户端浏览器中。浏览器访问网站时会携带这些cookie信息,达到鉴别身份的目的。
Session是在Cookie的基础上建立起来的会话跟踪技术,它将信息保存在服务器端。Session中能够存储负责的Java对象,因此使用更加方便。Session依赖于名为JSESSIONID的Cookie。你可能感兴趣的:(《锋利的jQuery》学习总结)
- 斤斤计较的婚姻到底有多难? 白心之岂必有为
很多人私聊我会问到在哪个人群当中斤斤计较的人最多?我都会回答他,一般婚姻出现问题的斤斤计较的人士会非常多,以我多年经验,在婚姻落的一塌糊涂的人当中,斤斤计较的人数占比在20~30%以上,也就是说10个婚姻出现问题的斤斤计较的人有2-3个有多不减。在婚姻出问题当中,有大量的心理不平衡的、尖酸刻薄的怨妇。在婚姻中仅斤斤计较有两种类型:第一种是物质上的,另一种是精神上的。在物质与精神上抠门已经严重的影响- 情绪觉察日记第37天 露露_e800
今天是家庭关系规划师的第二阶最后一天,慧萍老师帮我做了个案,帮我处理了埋在心底好多年的一份恐惧,并给了我深深的力量!这几天出来学习,爸妈过来婆家帮我带小孩,妈妈出于爱帮我收拾东西,并跟我先生和婆婆产生矛盾,妈妈觉得他们没有照顾好我…。今晚回家见到妈妈,我很欣赏她并赞扬她,妈妈说今晚要跟我睡我说好,当我们俩躺在床上准备睡觉的时候,我握着妈妈的手对她说:妈妈这几天辛苦你了,你看你多利害把我们的家收拾得- 芦花鞋一四 许叶晗
又是在一个寒冷的夏日里,青铜和葵花决定今天一起去卖芦花鞋,奶奶亲手给他们做了一碗热乎乎的粥对他们说:“就靠你们两挣生活费了这碗粥赶紧趁热喝了吧!”于是青铜和葵花喝完了奶奶给她们做的粥,就准备去镇上卖卢花鞋,这回青铜和葵花穿着新的芦花鞋来到了镇上。青铜这回看到了很多人都在卖,用手势表达对葵花说:“这回有好多人在抢我们生意呢!我们必须得吆喝起来。”葵花点了点头。可是谁知他们也大声的叫,卖芦花喽!卖芦花- QQ群采集助手,精准引流必备神器 2401_87347160 其他经验分享
功能概述微信群查找与筛选工具是一款专为微信用户设计的辅助工具,它通过关键词搜索功能,帮助用户快速找到相关的微信群,并提供筛选是否需要验证的群组的功能。主要功能关键词搜索:用户可以输入关键词,工具将自动查找包含该关键词的微信群。筛选功能:工具提供筛选机制,用户可以选择是否只显示需要验证或不需要验证的群组。精准引流:通过上述功能,用户可以更精准地找到目标群组,进行有效的引流操作。3.设备需求该工具可以- 关于沟通这件事,项目经理不需要每次都面对面进行 流程大师兄
很多项目经理都会遇到这样的问题,项目中由于事情太多,根本没有足够的时间去召开会议,那在这种情况下如何去有效地管理项目中的利益相关者?当然,不建议电子邮件也不需要开会的话,建议可以采取下面几种方式来形成有效的沟通,这几种方式可以帮助你努力的通过各种办法来保持和各方面的联系。项目经理首先要问自己几个问题,项目中哪些利益相关者是必须要进行沟通的?可以列出项目中所有的利益相关者清单,同时也整理出项目中哪些- 机器学习与深度学习间关系与区别 ℒℴѵℯ心·动ꦿ໊ོ꫞ 人工智能学习深度学习python
一、机器学习概述定义机器学习(MachineLearning,ML)是一种通过数据驱动的方法,利用统计学和计算算法来训练模型,使计算机能够从数据中学习并自动进行预测或决策。机器学习通过分析大量数据样本,识别其中的模式和规律,从而对新的数据进行判断。其核心在于通过训练过程,让模型不断优化和提升其预测准确性。主要类型1.监督学习(SupervisedLearning)监督学习是指在训练数据集中包含输入- 铭刻于星(四十二) 随风至
69夜晚,绍敏同学做完功课后,看了眼房外,没听到动静才敢从书包的夹层里拿出那个心形纸团。折痕压得很深,都有些旧了,想来是已经写好很久了。绍敏同学慢慢地、轻轻地捏开折叠处,待到全部拆开后,又反复抚平纸张,然后仔细地一字字默看。只是开头的三个字是第一次看到,让她心漏跳了几拍。“亲爱的绍敏:从四年级的时候,我就喜欢你了,但是我一直不敢说,怕影响你学习。六年级的时候听说有人跟你表白,你接受了,我很难过,但- 底层逆袭到底有多难,不甘平凡的你准备好了吗?让吴起给你说说 造命者说
底层逆袭到底有多难,不甘平凡的你准备好了吗?让吴起给你说说我叫吴起,生于公元前440年的战国初期,正是群雄并起、天下纷争不断的时候。后人说我是军事家、政治家、改革家,是兵家代表人物。评价我一生历仕鲁、魏、楚三国,通晓兵家、法家、儒家三家思想,在内政军事上都有极高的成就。周安王二十一年(公元前381年),因变法得罪守旧贵族,被人乱箭射死。我出生在卫国一个“家累万金”的富有家庭,从年轻时候起就不甘平凡- 2020-01-25 晴岚85
郑海燕坚持分享590天2020.1.24在生活中只存在两个问题。一个问题是:你知道想要达成的目标是什么,但却不知道如何才能达成;另一个问题是:你不知道你的目标是什么。前一个是行动的问题,后一个是结果的问题。通过制定具体的下一步行动,可以解决不知道如何开始行动的问题。而通过去想象结果,对结果做预估,可以解决找不着目标的问题。对于所有吸引我们注意力,想要完成的任务,你可以先想象一下,预期的结果究竟是什- 随笔 | 仙一般的灵气 海思沧海
仙岛今天,我看了你全部,似乎已经进入你的世界我不知道,这是否是梦幻,还是你仙一般的灵气吸引了我也许每一个人都要有一份属于自己的追求,这样才能够符合人生的梦想,生活才能够充满着阳光与快乐我不知道,我为什么会这样的感叹,是在感叹自己的人生,还是感叹自己一直没有孜孜不倦的追求只感觉虚度了光阴,每天活在自己的梦中,活在一个不真实的世界是在逃避自己,还是在逃避周围的一切有时候我嘲笑自己,嘲笑自己如此的虚无,- 想家 爆米花机
也许不同于大家对家乡的思念,我对家乡甚至是疯狂的不舍。还未踏出车站就感觉到幸福,我享受这里的夕阳、这里的浓烈柴火味、这里每一口家常菜。我是宅女,我贪恋家的安逸。刚刚踏出大学校门,初出茅庐,无法适应每年只能国庆和春节回家。我焦虑、失眠、无端发脾气,是无法适应工作的节奏,是无法接受我将一步步离开家乡的事实。我不想承认自己胸无大志,选择再次踏上征程。图片发自App- 【iOS】MVC设计模式 Magnetic_h iosmvc设计模式objective-c学习ui
MVC前言如何设计一个程序的结构,这是一门专门的学问,叫做"架构模式"(architecturalpattern),属于编程的方法论。MVC模式就是架构模式的一种。它是Apple官方推荐的App开发架构,也是一般开发者最先遇到、最经典的架构。MVC各层controller层Controller/ViewController/VC(控制器)负责协调Model和View,处理大部分逻辑它将数据从Mod- OC语言多界面传值五大方式 Magnetic_h iosui学习objective-c开发语言
前言在完成暑假仿写项目时,遇到了许多需要用到多界面传值的地方,这篇博客来总结一下比较常用的五种多界面传值的方式。属性传值属性传值一般用前一个界面向后一个界面传值,简单地说就是通过访问后一个视图控制器的属性来为它赋值,通过这个属性来做到从前一个界面向后一个界面传值。首先在后一个界面中定义属性@interfaceBViewController:UIViewController@propertyNSSt- 一百九十四章. 自相矛盾 巨木擎天
唉!就这么一夜,林子感觉就像过了很多天似的,先是回了阳间家里,遇到了那么多不可思议的事情儿。特别是小伙伴们,第二次与自己见面时,僵硬的表情和恐怖的气氛,让自己如坐针毡,打从心眼里难受!还有东子,他现在还好吗?有没有被人欺负?护城河里的小鱼小虾们,还都在吗?水不会真的干枯了吧?那对相亲相爱漂亮的太平鸟儿,还好吧!春天了,到了做窝、下蛋、喂养小鸟宝宝的时候了,希望它们都能够平安啊!虽然没有看见家人,也- UI学习——cell的复用和自定义cell Magnetic_h ui学习
目录cell的复用手动(非注册)自动(注册)自定义cellcell的复用在iOS开发中,单元格复用是一种提高表格(UITableView)和集合视图(UICollectionView)滚动性能的技术。当一个UITableViewCell或UICollectionViewCell首次需要显示时,如果没有可复用的单元格,则视图会创建一个新的单元格。一旦这个单元格滚动出屏幕,它就不会被销毁。相反,它被添- element实现动态路由+面包屑 软件技术NINI vue案例vue.js前端
el-breadcrumb是ElementUI组件库中的一个面包屑导航组件,它用于显示当前页面的路径,帮助用户快速理解和导航到应用的各个部分。在Vue.js项目中,如果你已经安装了ElementUI,就可以很方便地使用el-breadcrumb组件。以下是一个基本的使用示例:安装ElementUI(如果你还没有安装的话):你可以通过npm或yarn来安装ElementUI。bash复制代码npmi- 10月|愿你的青春不负梦想-读书笔记-01 Tracy的小书斋
本书的作者是俞敏洪,大家都很熟悉他了吧。俞敏洪老师是我行业的领头羊吧,也是我事业上的偶像。本日摘录他书中第一章中的金句:『一个人如果什么目标都没有,就会浑浑噩噩,感觉生命中缺少能量。能给我们能量的,是对未来的期待。第一件事,我始终为了进步而努力。与其追寻全世界的骏马,不如种植丰美的草原,到时骏马自然会来。第二件事,我始终有阶段性的目标。什么东西能给我能量?答案是对未来的期待。』读到这里的时候,我便- C语言宏函数 南林yan C语言c语言
一、什么是宏函数?通过宏定义的函数是宏函数。如下,编译器在预处理阶段会将Add(x,y)替换为((x)*(y))#defineAdd(x,y)((x)*(y))#defineAdd(x,y)((x)*(y))intmain(){inta=10;intb=20;intd=10;intc=Add(a+d,b)*2;cout<- 地推话术,如何应对地推过程中家长的拒绝 校师学
相信校长们在做地推的时候经常遇到这种情况:市场专员反馈家长不接单,咨询师反馈难以邀约这些家长上门,校区地推疲软,招生难。为什么?仅从地推层面分析,一方面因为家长受到的信息轰炸越来越多,对信息越来越“免疫”;而另一方面地推人员的专业能力和营销话术没有提高,无法应对家长的拒绝,对有意向的家长也不知如何跟进,眼睁睁看着家长走远;对于家长的疑问,更不知道如何有技巧地回答,机会白白流失。由于回答没技巧和专业- 谢谢你们,爱你们! 鹿游儿
昨天家人去泡温泉,二个孩子也带着去,出发前一晚,匆匆下班,赶回家和孩子一起收拾。饭后,我拿出笔和本子(上次去澳门时做手帐的本子)写下了1\2\3\4\5\6\7\8\9,让后让小壹去思考,带什么出发去旅游呢?她在对应的数字旁边画上了,泳衣、泳圈、肖恩、内衣内裤、tapuy、拖鞋……画完后,就让她自己对着这个本子,将要带的,一一带上,没想到这次带的书还是这本《便便工厂》(晚上姑婆发照片过来,妹妹累得- C语言如何定义宏函数? 小九格物 c语言
在C语言中,宏函数是通过预处理器定义的,它在编译之前替换代码中的宏调用。宏函数可以模拟函数的行为,但它们不是真正的函数,因为它们在编译时不会进行类型检查,也不会分配存储空间。宏函数的定义通常使用#define指令,后面跟着宏的名称和参数列表,以及宏展开后的代码。宏函数的定义方式:1.基本宏函数:这是最简单的宏函数形式,它直接定义一个表达式。#defineSQUARE(x)((x)*(x))2.带参- 微服务下功能权限与数据权限的设计与实现 nbsaas-boot 微服务java架构
在微服务架构下,系统的功能权限和数据权限控制显得尤为重要。随着系统规模的扩大和微服务数量的增加,如何保证不同用户和服务之间的访问权限准确、细粒度地控制,成为设计安全策略的关键。本文将讨论如何在微服务体系中设计和实现功能权限与数据权限控制。1.功能权限与数据权限的定义功能权限:指用户或系统角色对特定功能的访问权限。通常是某个用户角色能否执行某个操作,比如查看订单、创建订单、修改用户资料等。数据权限:- 理解Gunicorn:Python WSGI服务器的基石 范范0825 ipythonlinux运维
理解Gunicorn:PythonWSGI服务器的基石介绍Gunicorn,全称GreenUnicorn,是一个为PythonWSGI(WebServerGatewayInterface)应用设计的高效、轻量级HTTP服务器。作为PythonWeb应用部署的常用工具,Gunicorn以其高性能和易用性著称。本文将介绍Gunicorn的基本概念、安装和配置,帮助初学者快速上手。1.什么是Gunico- 小丽成长记(四十三) 玲玲54321
小丽发现,即使她好不容易调整好自己的心态下一秒总会有不确定的伤脑筋的事出现,一个接一个的问题,人生就没有停下的时候,小问题不断出现。不过她今天看的书,她接受了人生就是不确定的,厉害的人就是不断创造确定性,在Ta的领域比别人多的确定性就能让自己脱颖而出,显示价值从而获得的比别人多的利益。正是这样的原因,因为从前修炼自己太少,使得她现在在人生道路上打怪起来困难重重,她似乎永远摆脱不了那种无力感,有种习- 学点心理知识,呵护孩子健康 静候花开_7090
昨天听了华中师范大学教育管理学系副教授张玲老师的《哪里才是学生心理健康的最后庇护所,超越教育与技术的思考》的讲座。今天又重新学习了一遍,收获匪浅。张玲博士也注意到了当今社会上的孩子由于心理问题导致的自残、自杀及伤害他人等恶性事件。她向我们普及了一个重要的命题,她说心理健康的一些基本命题,我们与我们通常的一些教育命题是不同的,她还举了几个例子,让我们明白我们原来以为的健康并非心理学上的健康。比如如果- 2021年12月19日,春蕾教育集团团建活动感受——黄晓丹 黄错错加油
感受:1.从陌生到熟悉的过程。游戏环节让我们在轻松的氛围中得到了锻炼,也增长了不少知识。2.游戏过程中,我们贡献的是个人力量,展现的是团队的力量。它磨合的往往不止是工作的熟悉,更是观念上契合度的贴近。3.这和工作是一样的道理。在各自的岗位上,每个人摆正自己的位置、各司其职充分发挥才能,并团结一致劲往一处使,才能实现最大的成功。新知:1.团队精神需要不断地创新。过去,人们把创新看作是冒风险,现在人们- Cell Insight | 单细胞测序技术又一新发现,可用于HIV-1和Mtb共感染个体诊断 尐尐呅
结核病是艾滋病合并其他疾病中导致患者死亡的主要原因。其中结核病由结核分枝杆菌(Mycobacteriumtuberculosis,Mtb)感染引起,获得性免疫缺陷综合症(艾滋病)由人免疫缺陷病毒(Humanimmunodeficiencyvirustype1,HIV-1)感染引起。国家感染性疾病临床医学研究中心/深圳市第三人民医院张国良团队携手深圳华大生命科学研究院吴靓团队,共同研究得出单细胞测序- c++ 的iostream 和 c++的stdio的区别和联系 黄卷青灯77 c++算法开发语言iostreamstdio
在C++中,iostream和C语言的stdio.h都是用于处理输入输出的库,但它们在设计、用法和功能上有许多不同。以下是两者的区别和联系:区别1.编程风格iostream(C++风格):C++标准库中的输入输出流类库,支持面向对象的输入输出操作。典型用法是cin(输入)和cout(输出),使用>操作符来处理数据。更加类型安全,支持用户自定义类型的输入输出。#includeintmain(){in- 瑶池防线 谜影梦蝶
冥华虽然逃过了影梦的军队,但他是一个忠臣,他选择上报战况。败给影梦后成逃兵,高层亡尔还活着,七重天失守......随便一条,即可处死冥华。冥华自然是知道以仙界高层的习性此信一发自己必死无疑,但他还选择上报实情,因为责任。同样此信送到仙宫后,知道此事的人,大多数人都认定冥华要完了,所以上到仙界高层,下到扫大街的,包括冥华自己,全都准备好迎接冥华之死。如果仙界现在还属于两方之争的话,冥华必死无疑。然而- 爬山后遗症 璃绛
爬山,攀登,一步一步走向制高点,是一种挑战。成功抵达是一种无法言语的快乐,在山顶吹吹风,看看风景,这是从未有过的体验。然而,爬山一时爽,下山腿打颤,颠簸的路,一路向下走,腿部力量不够,走起来抖到不行,停不下来了!第二天必定腿疼,浑身酸痛,坐立难安!- TOMCAT在POST方法提交参数丢失问题 357029540 javatomcatjsp
摘自http://my.oschina.net/luckyi/blog/213209 昨天在解决一个BUG时发现一个奇怪的问题,一个AJAX提交数据在之前都是木有问题的,突然提交出错影响其他处理流程。 检查时发现页面处理数据较多,起初以为是提交顺序不正确修改后发现不是由此问题引起。于是删除掉一部分数据进行提交,较少数据能够提交成功。 恢复较多数据后跟踪提交FORM DATA ,发现数- 在MyEclipse中增加JSP模板 删除-2008-08-18 ljy325 jspxmlMyEclipse
在D:\Program Files\MyEclipse 6.0\myeclipse\eclipse\plugins\com.genuitec.eclipse.wizards_6.0.1.zmyeclipse601200710\templates\jsp 目录下找到Jsp.vtl,复制一份,重命名为jsp2.vtl,然后把里面的内容修改为自己想要的格式,保存。 然后在 D:\Progr- JavaScript常用验证脚本总结 eksliang JavaScriptjavaScript表单验证
转载请出自出处:http://eksliang.iteye.com/blog/2098985 下面这些验证脚本,是我在这几年开发中的总结,今天把他放出来,也算是一种分享吧,现在在我的项目中也在用!包括日期验证、比较,非空验证、身份证验证、数值验证、Email验证、电话验证等等...! &nb- 微软BI(4) 18289753290 微软BI SSIS
1) Q:查看ssis里面某个控件输出的结果: A MessageBox.Show(Dts.Variables["v_lastTimestamp"].Value.ToString()); 这是我们在包里面定义的变量 2):在关联目的端表的时候如果是一对多的关系,一定要选择唯一的那个键作为关联字段。 3) Q:ssis里面如果将多个数据源的数据插入目的端一- 定时对大数据量的表进行分表对数据备份 酷的飞上天空 大数据量
工作中遇到数据库中一个表的数据量比较大,属于日志表。正常情况下是不会有查询操作的,但如果不进行分表数据太多,执行一条简单sql语句要等好几分钟。。 分表工具:linux的shell + mysql自身提供的管理命令 原理:使用一个和原表数据结构一样的表,替换原表。 linux shell内容如下: =======================开始 - 本质的描述与因材施教 永夜-极光 感想随笔
不管碰到什么事,我都下意识的想去探索本质,找寻一个最形象的描述方式。 我坚信,世界上对一件事物的描述和解释,肯定有一种最形象,最贴近本质,最容易让人理解 &- 很迷茫。。。 随便小屋 随笔
小弟我今年研一,也是从事的咱们现在最流行的专业(计算机)。本科三流学校,为了能有个更好的跳板,进入了考研大军,非常有幸能进入研究生的行业(具体学校就不说了,怕把学校的名誉给损了)。 先说一下自身的条件,本科专业软件工程。主要学习就是软件开发,几乎和计算机没有什么区别。因为学校本身三流,也就是让老师带着学生学点东西,然后让学生毕业就行了。对专业性的东西了解的非常浅。就那学的语言来说- 23种设计模式的意图和适用范围 aijuans 设计模式
Factory Method 意图 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。 适用性 当一个类不知道它所必须创建的对象的类的时候。 当一个类希望由它的子类来指定它所创建的对象的时候。 当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。 Abstr- Java中的synchronized和volatile aoyouzi javavolatilesynchronized
说到Java的线程同步问题肯定要说到两个关键字synchronized和volatile。说到这两个关键字,又要说道JVM的内存模型。JVM里内存分为main memory和working memory。 Main memory是所有线程共享的,working memory则是线程的工作内存,它保存有部分main memory变量的拷贝,对这些变量的更新直接发生在working memo- js数组的操作和this关键字 百合不是茶 js数组操作this关键字
js数组的操作; 一:数组的创建: 1、数组的创建 var array = new Array(); //创建一个数组 var array = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度 var arrayObj = new Array([element0[, element1[, ...[, elementN]]]- 别人的阿里面试感悟 bijian1013 面试分享工作感悟阿里面试
原文如下:http://greemranqq.iteye.com/blog/2007170 一直做企业系统,虽然也自己一直学习技术,但是感觉还是有所欠缺,准备花几个月的时间,把互联网的东西,以及一些基础更加的深入透析,结果这次比较意外,有点突然,下面分享一下感受吧! &nb- 淘宝的测试框架Itest Bill_chen springmaven框架单元测试JUnit
Itest测试框架是TaoBao测试部门开发的一套单元测试框架,以Junit4为核心, 集合DbUnit、Unitils等主流测试框架,应该算是比较好用的了。 近期项目中用了下,有关itest的具体使用如下: 1.在Maven中引入itest框架: <dependency> <groupId>com.taobao.test</groupId&g- 【Java多线程二】多路条件解决生产者消费者问题 bit1129 java多线程
package com.tom; import java.util.LinkedList; import java.util.Queue; import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.locks.Condition; import java.util.concurrent.loc- 汉字转拼音pinyin4j 白糖_ pinyin4j
以前在项目中遇到汉字转拼音的情况,于是在网上找到了pinyin4j这个工具包,非常有用,别的不说了,直接下代码: import java.util.HashSet; import java.util.Set; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin- org.hibernate.TransactionException: JDBC begin failed解决方案 bozch ssh数据库异常DBCP
org.hibernate.TransactionException: JDBC begin failed: at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:68) at org.hibernate.impl.SessionImp- java-并查集(Disjoint-set)-将多个集合合并成没有交集的集合 bylijinnan java
import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.ut- Java PrintWriter打印乱码 chenbowen00 java
一个小程序读写文件,发现PrintWriter输出后文件存在乱码,解决办法主要统一输入输出流编码格式。 读文件: BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。 可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。 通常,Reader 所作的每个读取请求都会导致对基础字符或字节流进行相应的读取请求。因- [天气与气候]极端气候环境 comsci 环境
如果空间环境出现异变...外星文明并未出现,而只是用某种气象武器对地球的气候系统进行攻击,并挑唆地球国家间的战争,经过一段时间的准备...最大限度的削弱地球文明的整体力量,然后再进行入侵...... 那么地球上的国家应该做什么样的防备工作呢? &n- oracle order by与union一起使用的用法 daizj UNIONoracleorder by
当使用union操作时,排序语句必须放在最后面才正确,如下: 只能在union的最后一个子查询中使用order by,而这个order by是针对整个unioning后的结果集的。So: 如果unoin的几个子查询列名不同,如 Sql代码 select supplier_id, supplier_name from suppliers UNI- zeus持久层读写分离单元测试 deng520159 单元测试
本文是zeus读写分离单元测试,距离分库分表,只有一步了.上代码: 1.ZeusMasterSlaveTest.java package com.dengliang.zeus.webdemo.test; import java.util.ArrayList; import java.util.List; import org.junit.Assert; import org.j- Yii 截取字符串(UTF-8) 使用组件 dcj3sjt126com yii
1.将Helper.php放进protected\components文件夹下。 2.调用方法: Helper::truncate_utf8_string($content,20,false); //不显示省略号 Helper::truncate_utf8_string($content,20); //显示省略号 &n- 安装memcache及php扩展 dcj3sjt126com PHP
安装memcache tar zxvf memcache-2.2.5.tgz cd memcache-2.2.5/ /usr/local/php/bin/phpize (?) ./configure --with-php-confi- JsonObject 处理日期 feifeilinlin521 javajsonJsonOjbectJsonArrayJSONException
写这边文章的初衷就是遇到了json在转换日期格式出现了异常 net.sf.json.JSONException: java.lang.reflect.InvocationTargetException 原因是当你用Map接收数据库返回了java.sql.Date 日期的数据进行json转换出的问题话不多说 直接上代码 &n- Ehcache(06)——监听器 234390216 监听器listenerehcache
监听器 Ehcache中监听器有两种,监听CacheManager的CacheManagerEventListener和监听Cache的CacheEventListener。在Ehcache中,Listener是通过对应的监听器工厂来生产和发生作用的。下面我们将来介绍一下这两种类型的监听器。- activiti 自带设计器中chrome 34版本不能打开bug的解决 jackyrong Activiti
在acitivti modeler中,如果是chrome 34,则不能打开该设计器,其他浏览器可以, 经证实为bug,参考 http://forums.activiti.org/content/activiti-modeler-doesnt-work-chrome-v34 修改为,找到 oryx.debug.js 在最头部增加 if (!Document.- 微信收货地址共享接口-终极解决 laotu5i0 微信开发
最近要接入微信的收货地址共享接口,总是不成功,折腾了好几天,实在没办法网上搜到的帖子也是骂声一片。我把我碰到并解决问题的过程分享出来,希望能给微信的接口文档起到一个辅助作用,让后面进来的开发者能快速的接入,而不需要像我们一样苦逼的浪费好几天,甚至一周的青春。各种羞辱、谩骂的话就不说了,本人还算文明。 如果你能搜到本贴,说明你已经碰到了各种 ed- 关于人才 netkiller.github.com 工作面试招聘netkiller人才
关于人才 每个月我都会接到许多猎头的电话,有些猎头比较专业,但绝大多数在我看来与猎头二字还是有很大差距的。 与猎头接触多了,自然也了解了他们的工作,包括操作手法,总体上国内的猎头行业还处在初级阶段。 总结就是“盲目推荐,以量取胜”。 目前现状 许多从事人力资源工作的人,根本不懂得怎么找人才。处在人才找不到企业,企业找不到人才的尴尬处境。 企业招聘,通常是需要用人的部门提出招聘条件,由人- 搭建 CentOS 6 服务器 - 目录 rensanning centos
(1) 安装CentOS ISO(desktop/minimal)、Cloud(AWS/阿里云)、Virtualization(VMWare、VirtualBox) 详细内容 (2) Linux常用命令 cd、ls、rm、chmod...... 详细内容 (3) 初始环境设置 用户管理、网络设置、安全设置...... 详细内容 (4) 常驻服务Daemon- 【求助】mongoDB无法更新主键 toknowme mongodb
Query query = new Query(); query.addCriteria(new Criteria("_id").is(o.getId())); &n- jquery 页面滚动到底部自动加载插件集合 xp9802 jquery
很多社交网站都使用无限滚动的翻页技术来提高用户体验,当你页面滑到列表底部时候无需点击就自动加载更多的内容。下面为你推荐 10 个 jQuery 的无限滚动的插件: 1. jQuery ScrollPagination jQuery ScrollPagination plugin 是一个 jQuery 实现的支持无限滚动加载数据的插件。 2. jQuery Screw S
"+username+":
"+content+"