05: jQuery
目录:
- 1.1 JQuery作用
- 1.2 jQuery与DOM比较 与 相互转换
- 1.3 jQuery选择器
- 1.4 jQuery筛选与过滤
- 1.5 jQuery表单
- 1.6 补充 JQuery常用查找方法补充
- 1.7 jQuery文本与属性操作
- 1.8 CSS操作
- 1.9 文档处理
- 1.10 JQuery事件绑定的四种方式
- 1.11 jQuery使用
1.1 JQuery作用返回顶部
简介:jQuery库为Web脚本编程提供了通用的抽象层,使得它几乎适用于任何编程的情形。
# # 第一:取得页面中的元素
# 1、 如果不使用JavaScript库,遍历DOM树,以及查找HTML文档结构中某个特殊的部分,必需编写很多代码
# 2、 jQuery为准确获取需要操纵的文档元素,提供了可靠而富有效率的选择符机制。 # # 第二:修改页面的外观
# 1、 CSS虽然为呈现方式提供了一种强大的手段,但当所有浏览器不完全支持相同的标准时,单纯使用CSS就会
# 显得力不从心
# 2、 jQuery可以弥补这一不足,它提供了跨浏览器的标准来解决方案。
# 3、 而且即使在页面已经呈现之后,jQuery仍然能够改变文档中某个部分的类或都个别的样式属性。 # # 第三:改变页面的内容
# 1、 jQuery能够影响的范围并不局限于简单的外观变化,使用少量的代码
# 2、 jQuery就能改变文档的内容,可以改变文本、插入或都翻转图像、对列表重新排序,甚至对HTML文档的整个结构都能重写和扩充——所有这些只需要一个简单易用的API。 # # 第四:响应用户的页面操作
# 1、 jQuery提供了截取形形色色的页面事件(比如用户单击一个链接)的适当方式,而不需要使用事件处理程
# 序搞乱HTML代码
# 2、 此外,它的事件处理API也消除了经常困扰Web开发人员的浏览器不一致性 # # 第五:为页面添加动态效果
# 1、 为了实现某种交互式行为,设计者也必须向用户提供视觉上的反馈
# 2、 jQuery中内置的一批淡入、擦除之类的效果,以及制作新效果的工具包,为此提供了便利 # # 第六:无需刷新页面
# 1、即可从服务器获取信息,这种编程模式就是从所周知的AJAX(Asyynchoronous JavaScript and XML),它能辅
# 助Web开发人员创建出反应灵敏、功能丰富的网站
# 2、jQuery通过消除这一过程中的浏览器特定的复杂性,使开发人员得以专注于服务器端的功能设计 # # 第七:简化常见的JavaScript任务
# 1、除了这些完全针对文档的特性之外,jQuery也提供了对基本的JavaScript结构(例如迭代和数组操作等)的增强
jQuery作用
1.2 jQuery与DOM比较 与 相互转换返回顶部
1. $=jQuery 可以使用这两个关键字调用jQuery中的方法
2. JQuery内部实质上封装的是DOM,JQuery中获得的东西比DOM获得的多
3. JQuery对象返回的是一个列表,列表中第0个元素就是用DOM获取的对象
4. 分别用JQuery和DOM获取对象的方法:
$("#i1") #使用JQuery获取对象
document.getElementById('i1'); #使用DOM获取对象
5. 将通过JQuery获取的对象转换成通过DOM获取的对象
jquery对象[0] => Dom对象
$("#i1")[0] = document.getElementById('i1'); #JQuery第0个元素就是DOM对象
6. 将通过DOM获取的对象装换成通过JQuery获取的对象
dom对象 => $(Dom对象)
d = document.getElementById('i1');
$(d) = $("#i1") #DOM对象用$()包起来就是JQuery对象
1.3 jQuery选择器返回顶部
1、基本选择器
1. id选择器
$("#i1") #找到id=i1的标签
2. class选择器
$(".c1")
3. 标签选择器
$('a') #找到所有a标签
4. 组合选择器
$('a,.c2,#i10') # 作用:找到所有a标签和所有class等于.c2的标签和id=i10的所有标签
5. 匹配所有元素,多用于结合上下文来搜索。
$("*")
2、层级选择器
1. $('#i1 a') #找到id=i1标签下面所有的a标签(子子孙孙都找到)
2. $('#i1>a') #找到id=i1标签下面所有的a标签(只能找到儿子)
3. $("label + input") #匹配所有跟在 label 后面的 input 元素
4. $("form ~ input") #找到所有与表单同辈的 input 元素
3、属性
1. $('[alex]') #找到具有alex属性的标签(比如:alex='123',alex='456')
2. $('[alex="456"] #只找到标签中alex='456'的标签(属性:alex;值:456)
1.4 jQuery筛选与过滤返回顶部
1、查找
1. $("p").parent() #取得一个包含着所有匹配元素的唯一父元素的元素集合
$("span").parents() # parents()将查找所有祖辈元素
$('#i1').parentsUntil('.c1') #查找当前元素的所有的父辈元素,直到遇到匹配元素为止
2. $("div").children() # children()只考虑子元素而不考虑所有后代元素
3. $("div").siblings() #获取所有兄弟标签,不包含自己
4. $("p").next() #获取匹配标签后面的兄弟标签
$("div:first").nextAll().addClass("after"); #查找当前元素之后所有的同辈元素。
$(‘#i1’).nextUntil(‘#i2’) #查找当前元素之后所有的同辈元素,直到遇到匹配元素为止
5. $("p").prev() #用于筛选前一个同辈元素的表达式
$("div:last").prevAll().addClass("before"); #查找当前元素之前所有的同辈元素
$(‘#i1’). prevUntil (‘#i2’) #查找当前元素之前所有的同辈元素,直到遇到匹配元素为止
6. $("p").find("span") #搜索所有与指定表达式匹配的元素, 子子孙孙中查找
2、基本筛选器
1. $('a:first') #找到所有a标签,只过滤出第一个
$('a:last') #找到所有a标签,只过滤出最后一个
2. eq(index) #通过索引提取出对应的值(索引从0开始)
$('a:eq(0)') #找到所有a标签中索引为0的元素
3. :even #找到偶数行
:odd #找到奇数行
4. :gt(index) #索引大于多少
:lt(index) #索引小于多少
5. :header #找到所有的h标题标签
6. $("input:not(:checked)") #查找所有未选中的 input 元素
3、过滤
作用:在选择器选择到的所有标签的基础上再选择一次
1) $(‘li’).eq(1) #先找到所有li标签,然后再过滤出索引为1的
2) $('li').first() #找到所有li标签过滤出的第一个
$('li').last() #找到所有li标签过滤出最后一个
3) hasClass(class) #检查当前的元素是否含有某个特定的类,如果有,则返回true
1.5 jQuery表单返回顶部
1、表单
1. $('#i1 input') 和 $('#i1 :input')区别
$('#i1 input') #只能匹配i1孩子中的所有input标签
$('#i1 :input') #不仅可以匹配input标签,也可以匹配select,textarea,button标签
2. $('#i1 :text') # 匹配所有的单行文本框
3. :password # 匹配所有密码框
4. :radio # 匹配所有单选按钮
5. :checkbox # 匹配所有复选框
6. :submit # 匹配所有提交按钮
7. :image # 匹配所有图像域
8. :reset # 匹配所有重置按钮
9. :button # 匹配所有按钮
10. :file # 匹配所有文件
2、表单对象属性
1. $('#i2 :enabled') # 查找所有可编辑input元素(即,没有disabled="disabled参数)
$('#i2 :disabled') # 查找所有不可编辑的input元素(input中有disabled="disabled参数)
2. :checked # 匹配所有选中的被选中元素(复选框、单选框等,select中的option),对于select元素来说,获取选中推荐使用 :selected
3. :selected # 匹配所有选中的option元素
4. :enabled # 可编辑的
5. :disabled # 不可编辑的
1.6 补充 JQuery常用查找方法补充返回顶部
1. $('.modal input[name="port"]') #作用是查找class=’modal’下面的input属性name=”port”
2. var val = $(this).prop('checked')?false:true #$(this).prop('checked')返回true那么val=false,反之为true
3. $('#edit_form').find('input[name="nid"]')
4. $("input[tag='obj_checkbox']:checked").each(function () {}); #找到所有有tag='obj_checkbox'属性并且勾选中的标签
5. $('form').find("[disabled]").removeAttr('disabled'); #找到并移除form标签转中所有disabled属性
6. $("div.comment_container").removeClass('hide') #找到所有class=comment_container并移除class=hide
7. $('.comment').children(".comment_text"); #找到class='comment' 下所有孩子标签中class='comment_text'
8. $('.post_container').children().remove() #找到class='post_container'的所有标签,并清空
1.7 jQuery文本与属性操作返回顶部
1、文本操作
1. $('#i1').text() #获取文本内容
$('#i1').text(“新内容”) #将标签中内容替换成“新内容”
2. $('#i1').html() #获取整个标签
$('#i1').html("<p>aaaaaaa</p>") #替换标签中的标签
3. $('#i2').val() #获取value的值(比如input框中内容)
$('#i2').val('2222') #将输入框中的值替换成:2222
2、属性操作
<input id="i1" type="button" value="开关" />
1. attr() #传入一个值是获取属性,传入两个值是设置属性
$('#i1').attr('type') #获取id=i1标签的type属性的值(结果:button)
$('#i1').attr('type','text') #将id=i1标签的属性修改成text
2. $('#i1').removeAttr('type') #删除其中的type="button”这个属性
3. prop #专门用于checkbox,radio标签操作
<input type='checkbox' id='i2' />
$('#i2').prop('checked') #获取值:选中结果是true未选中结果是false
$('#i2').prop('checked',true) #将checkbox多选框选中
4. 判断是否具有某个属性
if( !$("#display_name")[0].hasAttribute('is_login') ){}
1.8 CSS操作返回顶部
1、添加或删除id、或class属性
1. addClass()
$("p").addClass("c1"); # 添加c1样式
2. removeClass()
$("p").removeClass("c1"); # 清除c1样式
3. hasClass(class)
hasClass(class) #检查当前的元素是否含有某个特定的类,如果有,则返回true
2、添加style属性
1. $("p").css("color"); #取得第一个段落的color样式属性的值(1.9+版本)
2. $("p").css({ "color": "#ff0011"}); #将所有段落的字体颜色设为红色(1.9+版本)
3. $(tag).css('color','green'); #将获取的标签字体设置成绿色(1.0版本)
$(this).css({"border":"1px solid red"});
3.2 CSS:位置
1. $(window).scrollTop() #获取Windows窗口滚轮位置(没有值是获取值)
$(window).scrollTop(0) #返回顶部(有值就是设置值)
2. scrollLeft() #和scrollTop()相似
3. offset() #获取匹配元素在当前视口的相对偏移
$("p:last").offset({ top: 10, left: 30 }); #设置匹配元素在当前窗口的偏移
4. position() #获取匹配元素相对父元素的偏移(与父标签偏移)
# 常用于relative和position结合的相对定位中
# 找到的父标签一定是relative所在标签
4、CSS:尺寸
1. $('i1').height() # 获取标签的高度 纯高度(没有边框宽度)
2. $('i1').innerHeight() #获取第一个匹配元素内部区域高度(包括补白、不包括边框)
3. $('i1').outerHeight() #获取第一个匹配元素外部高度(默认包括补白和边框)
4. $('i1').outerHeight(true) #设置为 true 时,计算边距在内
1.9 文档处理返回顶部
1、文档处理:内部插入
1. $('#u1').append("<b>Hello</b>"); #向id=u1的孩子标签最下面添加
2. $('#u1'). prepend("<b>Hello</b>"); #向id=u1的孩子标签最上面添加
3. appendTo() #把匹配的元素追加到另一个指定元素元素后面
4. prependTo() #把匹配的元素追加到另一个指定元素元素前面
2、 文档处理:外部插入
1. $('#u1'). after("<b>Hello</b>"); #向id=u1的兄弟标签下面添加
2. $('#u1'). before("<b>Hello</b>");
3、 文档处理:删除
1. $('#u1 li').eq(index).remove(); #将找到的元素根据索引值删除(删除整个标签)
2. $('#u1 li').eq(index).empty(); #将找到的元素根据索引值删除(仅删除标签内容)
4、 文档处理:复制 #把DOM文档中元素的副本添加到其他位置时这个函数非常有用
1. clone() #<b>Hello</b><p>, how are you?</p>
$("b").clone().prependTo("p"); #<b>Hello</b><p><b>Hello</b>, how are you?</p>
1.10 JQuery事件绑定的四种方式返回顶部
1、$('.c').click(function(){ })没有解绑方法
2、bind绑定和解绑
$('.c1').bind('click',function(){ })
$('.c1').unbind('click',function(){ })
3、on绑定和解绑
$('.c1').on('click', function(){ })
$('.c1').off('click', function(){ })
4、delegate绑定和解绑
$('.c').delegate('a', 'click', function(){ })
$('.c').undelegate('a', 'click', function(){ })
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul id="u1">
<li>1</li>
<li>2</li>
</ul>
<script src="jquery-1.12.4.js"></script>
<script>
//第一种绑定:直接使用.事件名绑定
$('ul li').click(function () {
var v = $(this).text();
alert(v);
}); //第二种绑定:使用bind关键字绑定
$('ul li').bind('click',function () {
var v = $(this).text();
alert(v);
}); //第三种绑定:使用on绑定
$('ul li').on('click', function () {
var v = $(this).text();
alert(v);
}); //第四种绑定:使用delegate绑定
//委托:当点击的时候就会绑定并且执行(让增加一些东西又有相同功能时使用)
$('ul').delegate('li','click',function () {
var v = $(this).text();
alert(v);
})
</script>
</body>
</html>
jQuery四种绑定方式比较
5、使用hover动态绑定事件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div class="user_info">使用hover触发JS函数</div> <script src="/static/js/jquery-1.12.4.min.js"></script> <script>
$(function () {
$("div.user_info").hover(function () {
show_user_menu(true);
},function () {
show_user_menu(false)
}); function show_user_menu(tag) {
if(tag==true){
console.log('true')
}else {
console.log('false')
}
}
})
</script>
</body>
</html>
使用hover动态绑定事件
1.11 jQuery使用返回顶部
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<input type="button" value="全选" id="allCheck">
<input type="button" value="取消" id="allCancel">
<input type="button" value="反选" id="reverse">
<span id="edit" >编辑模式</span> <table border="1">
<thead>
<tr>
<th>选择</th>
<th>主机名</th>
<th>端口</th>
<th>状态</th>
</tr>
</thead> <tbody id="tb">
<tr class="item">
<td><input type="checkbox"></td>
<td><input type="text" value="1.1.1.1" disabled="disabled"></td>
<td><input type="text" value="22" disabled="disabled"></td>
<td><select disabled="disabled"><option>在线</option><option>下线</option></select></td>
</tr> <tr class="item">
<td><input type="checkbox"></td>
<td><input type="text" value="1.1.1.1" disabled="disabled"></td>
<td><input type="text" value="22" disabled="disabled"></td>
<td><select disabled="disabled"><option>在线</option><option>下线</option></select></td>
</tr> <tr class="item">
<td><input type="checkbox"></td>
<td><input type="text" value="1.1.1.1" disabled="disabled"></td>
<td><input type="text" value="22" disabled="disabled"></td>
<td><select disabled="disabled"><option>在线</option><option>下线</option></select></td>
</tr> </tbody>
</table> <script src="jquery-1.12.4.js"></script>
<script> // 1、全选
$('#allCheck').click(function(){
$('#tb :checkbox').prop('checked',true).trigger('change');
}); // 2、取消
$('#allCancel').click(function(){
$('#tb :checkbox').prop('checked',false).trigger('change');
}); // 3、反选
$('#reverse').click(function(){
$('#tb :checkbox').each(function(){
var v = $(this).prop('checked')?false:true;
$(this).prop('checked',v).trigger('change');
})
}); // 4、当点击“编辑模式”按钮时出发该函数,将所有有edit属性的去除 disabled 属性
$('#edit').click(function(){
$('#tb :checkbox').each(function(){
var v = $(this);
if(v.hasClass('edit')){
$('#edit').css('backgroundColor','');
v.removeClass('edit')
}else{
$('#edit').css('backgroundColor','red');
v.addClass('edit')
}; // 当点击“编辑模式”按钮时进行判断,将可编辑的去除 disabled 属性
if($(this).prop('checked') == true && $(this).hasClass('edit')==true){
$(this).parent().siblings().children().removeAttr('disabled')
}else{
$(this).parent().siblings().children().attr('disabled','disabled');
}
})
}); // 5、当勾选时出发该函数,如果是‘编辑模式’将所有有edit属性的去除 disabled 属性
$('#tb :checkbox').change(function(){ if($(this).prop('checked') == true && $(this).hasClass('edit')==true){
$(this).parent().siblings().children().removeAttr('disabled')
}else{
$(this).parent().siblings().children().attr('disabled','disabled')
}
})
</script> </body>
</html>
模态对话框
<script src="/static/js/myjs/jquery.cookie.js"></script>
<script>
// 当框架加载完成后执行此函数
window.onload = function(){
var v = $.cookie('history_page');
if(v){
$("#mytab [type_name=" + v + "]").next().click()
}
}; // 使用cookie解决页面跳转问题
function add_cookie(tag) {
$.cookie('history_page',tag, { expires: 1 });
} </script>
当框架加载完成后执行
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="x-ua-compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Title</title>
<style type="text/css">
ul li:hover,
ul li.hover {
background: #efefef;
}
</style>
</head>
<body>
<div class="form-group">
<label>添加审批人</label>
<input autocomplete="off" type="text" name="addapproveuser" id="input-text" class="form-control"
onkeydown="isDown(event)" />
<ul id="listuser" class="list-unstyled" style="z-index:9;position: fixed;background-color: white;min-width: 540px">
<li onclick="getLiValue(this)" style="margin: 8px;">18,肖乃强,DevOps</li>
<li onclick="getLiValue(this)" style="margin: 8px;">294,李肖峰,研发实施组</li>
<li onclick="getLiValue(this)" style="margin: 8px;">306,肖娟,医学数据</li>
<li onclick="getLiValue(this)" style="margin: 8px;">447,肖菲菲,医学数据PM</li>
</ul>
</div>
<script src="jquery-1.12.4.js"></script> <script>
// 点击li时使用li标签的值替换input中内容
function getLiValue(ths) {
lival = $(ths).text();
inputval = $('#input-text').val(lival);
$('#listuser').addClass('hidden');
$('#input-text').focus();
var index = $("#listuser li").index(ths);
num = index;
changeCurrentLiStyle()
} var num = -1; // 默认选中第几个li标签
isFirst = true; // 是否第一次按 up/down键
function isDown(event) {
if(event.keyCode==40){ // 按下down键
num++; // 更改num
changeCurrentLiStyle(); // 更新li的样式
isFirst = false; // 第一次已经过去了
} if(event.keyCode==38){ // 按下up键
if (isFirst) { // 如果是第一次,不用减了
isFirst = false; // 这次过去了,就不是第一次了
} else {
num--;
}
changeCurrentLiStyle(); // 更新li的样式
} if(event.keyCode==13){ // 按下enter键
lival = $('.hover').text();
inputval = $('#input-text').val(lival);
$('#listuser').addClass('hidden');
}
} // 改变li样式
function changeCurrentLiStyle() {
var lis = $('#listuser li');
if (lis.length === 0) { // 判断li是否存在
return;
}
var num = this.getNum(lis.length); // 获取索引值
for (var i = 0; i < lis.length; i++) { // 排他法设置类
lis[i].className = '';
}
lis[num].className = 'hover'; // 当前li选中
} // 获取最显著li的num值
function getNum(len) {
// 对于任意一个数(正数和负数)
// 对len取余之后,保证在-len到len之间
// var num = this.num % len;
// // 此时加上len,保证是0到2*len之间,一定是正数了
// num += len;
// // 此时再取余,就保证是0到len之间了
// num %= len
return (num % len + len) % len
}
</script>
</body>
</html>
input框输入补全提示 监听 up/down事件
<form>
<button type="submit" class="btn btn-info margin"
onclick='return check_form(this.from)'
name="action_status"
value="4" >修改预计完成时间
</button>
</form> <script>
function check_form() {
var predict_time = $("#id_predict_time").val();
if(!predict_time){
$('#predict_time_null').text('预计完成时间 为必填字段');
return false;
}
}
</script>
form表单提交前数据验证
05: jQuery的更多相关文章
- 【jQuery基础学习】05 jQuery与Ajax以及序列化
好吧,这章不像上章那么水了,总是炒剩饭也不好. 关于AJAX 所谓Ajax,全名Asynchronous JavaScript and XML.(也就异步的JS和XML) 简单点来讲就是不刷新页面来发 ...
- 新鲜出炉的30个精美的 jQuery & CSS3 效果【附演示和教程】
新鲜出炉的30个精美的 jQuery & CSS3 效果[附演示和教程] 作为最流行的 JavaScript 开发框架,jQuery 在现在的 Web 开发项目中扮演着重要角色,它简化了 ...
- js上课笔记
Html 结构化CSS 样式JavaScript 行为交互01.JavaScript基础02.JavaScript操作BOM对象03.JavaScript操作DOM对象 *****04.JavaScr ...
- Web前端开发推荐阅读书籍、学习课程下载
转自http://www.xuanfengge.com/fe-books.html 前言 学校里没有前端的课程,那如何学习JavaScript,又如何使自己成为一个合格的前端工程师呢? 除了在项目中学 ...
- 【初探移动前端开发05】jQuery Mobile (整合版)
前言 为了方便大家看的方便,我这里将这几天的东西整合一下发出. 里面的例子请使用手机浏览器查看. 什么是jQuery Mobile? jquery mobile是jquery在移动设备上的版本,他是基 ...
- 【初探移动前端开发05】jQuery Mobile (下)
前言 继续我们移动端的学习,今天到了List相关了. 本文例子请使用手机查看 List列表 在移动设备平台下,由于移动设备屏幕比较小,我们又是用手在上面点击的触屏方式,传统的列表模式在手机上就不太友好 ...
- jQuery 学习05——AJAX:定义、load()方法、get()/post()方法
AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML). load() 方法:从服务器加载数据,并把返回的数据放入被选元素中. 语法:$ ...
- 05 ajax,jquery,xstream,json解析
Ajax “Asynchronous Javascript And XML”(异步JavaScript和XML),把原有的技术,整合到一起 1.使用CSS和XHTML来表示. ...
- JQuery 学习笔记-2017.05.22
JQuery jQuery 是一个 JavaScript 函数库. jQuery 库包含以下特性: HTML 元素选取 HTML 元素操作 CSS 操作 HTML 事件函数 JavaScript 特效 ...
随机推荐
- ubuntu16.04下安装kdevelop和汉化
1.Kdevelop安装 最简单的命令行安装,打开终端,执行 sudo apt-get install kdevelop 2.Kdevelop汉化 不需要自己下载汉化包,Kdevelop安装后,在终端 ...
- 蓝桥杯 - G将军有一支训练有素的军队 - [树形DP]
G将军有一支训练有素的军队,这个军队除开G将军外,每名士兵都有一个直接上级(可能是其他士兵,也可能是G将军).现在G将军将接受一个特别的任务,需要派遣一部分士兵(至少一个)组成一个敢死队,为了增加敢死 ...
- PyQT5-QPushButton切换按钮
""" QPushButton:切换按钮就是QPsuhButton的一种特殊模式,他有两种状态:按下和未按下.我们在点击的时候切换两种状态,有很多场景会用到这个功能 Au ...
- Linux free命令详解
前段时间有个项目的用C写的,性能测试时发现内存泄露问题.关于怎么观察内存使用问题,free是很好用的一个命令. 参数讲解 bash-3.00$ freetotal used f ...
- UIGestureRecognizer和UITouch
UIGestureRecognizer和UITouch是分别判断的,如果判定了是手势,那就不再触发UITouch事件,如果两者并存,则会先执行UITouch事件,之后如果确认是手势,不再执行UITou ...
- Python开发【模块】:Weakref
Weak references 前言: weakref模块允许python开发者创建弱引用对象. 再接下来中,术语referent代表被弱引用所引用的对象. 一个弱引用对于对象是不能够保持对象存活的: ...
- Html各组件MIME类型
扩展名 类型/子类型 * application/octet-stream 323 text/h323 acx application/internet-property-stream ai appl ...
- Integer VS AtomicInteger VS MutableInteger
由于Integer是不可变的,每个循环增加key的value时会创建一个新的对象 每次value+1时不需要重新创建Integer对象 Integer, Boolean 等 is immutable, ...
- css3写等腰三角形
<style> .test { width: 0; height: 0; b ...
- 类似CFS程式发布注意事项
1.CFS 此AP 程式的验证方式为Forms 验证.需要在IIS 中做如下设置(Forms 身份验证,配套的Web.config 中要有对应节点代码,后台代码中要有获取方式) 2.Forms 身份验 ...