python2.0_s12_day13_javascript&Dom&jQuery
今天主要内容:
JavaScript
Dom
jQuery http://www.cnblogs.com/wupeiqi/articles/5369773.html 今天主要内容大致了解:
javascript
1.首先要知道 JavaScript 和 Java 没有半毛钱关系.
2.JavaScript 和python语言 一样 它也是一门语言.对于python语言需要用python解释器解释.而javascript的解释器是浏览器.
3.javascript 能实现什么.javascript就是让我们的前端页面(html)动起来.怎样让它动?
假如现在有一个页面,页面上有一个标签,用浏览器展示出来,现在我们用javascript把它删掉或者在这个标签上下在加一个标签,是不是就动了!!那么是不是给我们的感觉就有一个动画的效果了.
对javascript 就是进行删除标签,修改标签,或者修改css的.
Dom
其实我们经常听到的前端所说的JS,其实就是指javascript+dom.
javascript实现了对html文件中的html标签或者css进行修改的,而dom就提供了查找指定标签或者css的方法.
我们既然说dom提供了查找 xxx的方法,那么我们可定会想到dom就是一个类,类实例化成为一个对象后就有相应的方法了.
对没错,dom其实就是一个类.在html中用docment代表dom实例化后的对象.除了提供一些查找的方法,还提供一些alert(),confirm(),consol.log()等等方法. jQuery
jQuery是什么?其实jQuery严格意义上来说它什么都不是,不算是一种具有独特功能的技术模块.
我们通过javascript+dom两个东西,我们就可以在页面上做任何操作了.但是对于复杂的操作的话.我们需要很多步骤调用很多方法,可能100行代码才能实现.
而jquery它帮你把所有的功能都封装到一个包里面了.我们只需要引用这个包,调用它的方法,复杂的逻辑,复杂的运算它帮我们做,我们只需要知道一个函数名.
对于你来说,使用它能让你少做很多步操作就能实现很复杂的功能.
jQuery的产生就是为了简化程序员代码量.它相当于封装了javascript和dom的类库.
你后就不用写javascript和dom了,直接使用jque 就可以完成非常复杂的操作了. 我们既然说jQuery封装了javascript和dom,并且以后前端也用jQuery就行了,不用写原生的javascript和dom了,那么为什么不跳过javascript和dom呢,直接学jQuery呢.
因为,他们是基础,不知道原理,你用jQuery会很不顺手的. 下面我们依次学习:
JavaScript
JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编辑相应代码之后,浏览器可以解释并做出相应的处理.
1. JavaScript代码存在形式
<!-- 方式一 -->
<script type="text/javascript" src="JS文件"></script>
<!-- 方式二 -->
<script type="text/javascript">
Js代码内容
</script>
2. JavaScript代码存在位置
HTML的head中
HTML的body代码块底部(推荐) 由于Html代码是从上到下执行,如果Head中的js代码耗时严重,就会导致用户长时间无法看到页面,如果放到body代码块底部,那么即使js代码耗时严重,也不会影响用户看到页面效果,只是js实现特效慢而已.
<!--下面这个js文件在远端服务器,假设远端服务器挂了,浏览器再解释这段代码的时候会一直找下去,从而导致页面一直是大白页,直至等待超时报错-->
<!--当代码放到底部时,即使js耗时严重,之前的html代码也都执行完了.-->
<!--引入js文件的方式-->
<script src="https://www.gstatic.com/og/_/js/k=og.og2.en_US.iF4jnkQuaf0.O/rt=j/t=zcms/m=def/exm=in,fot/d=1/ed=1/rs=AA2YrTv5-POC4Ks9GtGRdY2ywUWisqz7-Q"></script> <!--js代码块写到script标签中-->
<script>
alert('');
</script>
3. 变量
全局变量
局部变量
JavaScript中变量的声明是一个非常容易出错的点,局部变量必须一个var开头,如果未使用var,则默认声明的是全局变量.
var name = 'ted' #局部变量
age =
注: 注释// 或/* */ 4. 基本数据类型
数字(Number)
var page = ;
var age = Number();
var a1 = ,a2 =, a3 =;
parseInt("1.2"); #转换成数字类型
parseFloat("1.2"); # 转换成数字类型,只是在显示的时候带小数点 var age = '18.2'
console.log(parseInt(age),typeof parseInt(age) )
结果 18 "number"
var age2 = '193.3'
console.log(parseFloat(age2),typeof parseFloat(age2))
结果:193.3 "number" 注: JavaScript中是没有float浮点数的,数据类型都是number,只是在显示的时候不一样 字符串(String)
var name = 'ted';
var name = String('ted');
var age_str = String();
常用的方法:
obj.trim() #去除两边的空格
obj.charAt(index) #索引取值
obj.substring(start,end) #获取字符串的子序列,类似于切片,开始的位置,结束的位置. 顾头不顾尾
obj.indexOf(char) # 获取某一个字符的索引位置
obj.length # 显示字符串的长度
布尔(Boolean)
var status = true;
var status = false;
var status = Boolen(==)
数组(Array)
数组是我们以后写代码中最长用到的.数组就等价于python的列表.在python里面用list创建列表,而在js里list = Array
创建数组的两种方法
var names = ['alex', 'tony', 'eric']
var names = Array('alex', 'tony', 'eric') 常用方法:
添加
obj.push(ele) 追加
obj.unshift(ele) 最前插入
obj.splice(index,,'content') 指定索引插入,中间这个0一定要有
移除
obj.pop() 移除尾部,并获取
obj.shift() 移除头部,并获取
obj.splice(index,count) 数组指定位置后count个字符并获取,是几个字符,不是索引,
["xx", "oo", "oo", , , , "aa"]
li.splice('',) 这里的2是个数,前面的1是索引位置
["oo", "oo"]
li
["xx", , , , "aa"]
切片
obj.slice(start,end)
合并
newArray = obj1.concat(obj2)
翻转
obj.reverse() 字符串化
obj.join('_') 将数组里的元素,使用'_"进行连接
长度
obj.length 显示长度
字典
对于javascript内部是没有字典类型的他是通过一个类来实现的.这句话怎么理解呢,意思是,如果你执行了下面的语句,它其实生成了一个对象,这个对象内部其实就像字典.反应到代码就是如下:
var items = {'k1': 123, 'k2': 'tony'}
items
Object {k1: 123, k2: "tony"}
我们看到,输入items显示上面一个东西.
对于基本的数据类型,就这么多,以后的操作就是对这些数据类型进行操作.并且还有些用不到. 接下来补充一点,并且是以后用的最多的.
在 python中有json,是将对象序列化和反序列化的.在js中也有json
用法如下:
items #这是一个字典
Object {k1: , k2: "tony"}
s = JSON.stringify(items) # 序列化过程
"{"k1":123,"k2":"tony"}"
s # 查看序列化后的结果
"{"k1":123,"k2":"tony"}"
JSON.parse(s) # 反序列化过程
Object {k1: , k2: "tony"}
这个一定要会 undefined
undefined表示未定义值
var name;
null
null是一个特殊值
5、循环语句
var names = ["alex", "tony", "rain"]; // 数组:方式一
for(var i=;i<names.length;i++){
console.log(i);
console.log(names[i]);
} // 数组:方式二
for(var index in names){
console.log(index);
console.log(names[index]);
}
var names = {"name": "alex", "age": }; // 字典:方式一
for(var index in names){
console.log(index);
console.log(names[index]);
}
// while循环
while(条件){
// break;
// continue;
}
6. 条件语句
//if条件语句 if(条件){ }else if(条件){ }else{ }
var name = 'alex';
var age = ; // switch,case语句
switch(name){
case '':
age = ;
break;
case '':
age = ;
break;
default :
age = ;
}
7、异常处理
try{ }catch(e) { }finally{ }
8、函数
函数的声明
function func(arg){
return true;
}
匿名函数
var func = function(arg){
return "tony";
}
自执行函数
(function(arg){
console.log(arg);
})('')
9、面向对象
function Foo (name,age) {
this.Name = name;
this.Age = age;
this.Func = function(arg){
return this.Name + arg;
}
} var obj = new Foo('alex', );
var ret = obj.Func("sb");
console.log(ret);
Dom 文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口。
它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式。
我们最为关心的是,DOM把网页和脚本以及其他的编程语言联系了起来。DOM属于浏览器,而不是JavaScript语言规范里的规定的核心内容。
注:一般说的JS让页面动起来泛指JavaScript和Dom
1、选择器
document.getElementById('id'); # 通过标签id获取 对象,这里获得的对象只有一个,因为在html中id是不允许重复的
document.getElementsByName('name'); # 通过name属性获取 指定的对象,这里获得的是列表,即使是只有一个也被放到列表里
document.getElementsByTagName('tagname'); # 通过标签的种类获取指定的对象,这里获得的是列表,即使是只有一个也被放到列表里
2、内容
innerText # 获取标签对象内的所有文本值(不包括标签)
var obj = document.getElementsByTagName('div') # obj获得的是列表,所以要取 []
HTML页面body部分有以下代码:
<div>
sbssbsbsbsbs
<h2 id="">index1</h2>
</div>
<h2>index2</h2>
<script type="text/javascript">
var aaa = ;
switch (aaa) {
case :
console.log('');
break;
case :
console.log('');
break;
default:
console.log('');
}
</script>
用谷歌浏览器打开上面这个网页,并且在console中输入以下内容:
var obj = document.getElementsByTagName('div')
obj[0].innerText
"sbssbsbsbsbs
index1
"
上面我们看到div标签中有字符串和一个h2标签,当使用 obj.innerText获取内容的时候,把div里的字符串和h2标签里的内容都获取到了,但是却没有获取到h2标签(只是把标签的字符串值拿到了)
innerHTML # 获取标签对象内的所有值(包括标签)
接着上面的例子,我们使用innerHTML看看获取到什么值?
obj[0].innerHTML
"
sbssbsbsbsbs
<h2 id="111">index1</h2>
"
把包含在div标签下的子标签+字符串都获取到了. var obj = document.getElementById('nid')
obj.innerText # 获取文本内容
obj.innerText = "hello" # 设置文本内容
obj.innerHTML # 获取HTML内容
obj.innerHTML = "<h1>asd</h1>" # 设置HTML内容 总结:innerText 和 innerHTML取文本内容和包含标签的内容
但是又些特殊的标签,就不能使用innerText来获取值,只能使用obj.value来获取值.
特殊的:
input系列
textarea标签
select标签
value属性操作用户输入和选择的值
代码实例1:
<form action="">
<input type="text" name="username" value=''>
<input type="password" name="pwd" value="">
</form> <script>
var obj1 = document.getElementsByName('pwd')[] ;
var obj2 = document.getElementsByName('username')[];
console.log(obj1,obj2)
console.log(obj1.value,obj2.value)
</script>
代码实例2:(代码实现了获取文本内容,并修改文本内容.这个例子要看懂,)
<body>
<input type="text" id="text1">
<input type="button" value="获取input里的值" onclick="getvalue();"/>
<script type="text/javascript"> function getvalue(){
var obj1 = document.getElementById('text1')
var text = obj1.value
alert(text)
obj1.value = ''
}
</script>
</body>
代码实例3:(获取select里的value)
<body>
<select id="n3">
<option value=""></option>
<option value=""></option>
<option value=""></option>
</select>
<input type="button" value="获取input里的值" onclick="getvalue();"/>
<script type="text/javascript"> function getvalue(){
var obj1 = document.getElementById('n3')
console.log(obj1.value)
alert(obj1.value)
}
</script>
</body>
代码实例4:
场景:有a连接,我们希望点击a连接的文本在添加一条一模一样的a连接怎么做?
<body>
<a href="http://www.oldboyedu.com/" onclick="f1();">添加</a>
<script type="text/javascript">
function f1(){
alert()
}
</script>
上面的代码,会出现当你添加a连接,后,f1()里的js代码会执行,但执行完成后,紧接着会跳转到www.oldboyedu.com 这个网站.
那么问题来了.我们不希望在执行完f1()函数后跳转应该怎样实现呢? 实现方法,就是定义a标签的onclick事件反回false,这样就不会跳转了.
于是代码如下:
<body>
<a href="http://www.oldboyedu.com/" onclick="return f1();">添加</a>
<script type="text/javascript">
function f1(){
alert()
return false
}
</script> </body>
小扩展:
有下面这段html代码
<body>
<ul>
<li></li>
<li></li>
<li></li>
</ul>
<script>
var lis = document.getElementsByTagName('li');
for(var i in lis) {
console.log(i);
}
</script>
</body>
用谷歌浏览器打开,你会发现,for循环不仅打印了111,222,333还有其他的一些元素.如下:
length
item
namedItem
这样就不是我们想要的结果了.那么如何解决呢.就用关于数组的第二种for循环方法:
<body>
<ul>
<li></li>
<li></li>
<li></li>
</ul>
<script>
var lis = document.getElementsByTagName('li');
for(var i = ;i<lis.length;i++){
console.log(i)
}
</script>
</body>
浏览器打开此页面,看到console中显示:
接下来看一个小实例:我们看到有些页面让你填写购买商品的数量,然后旁边有一个加号,和减号.那么如何实现的呢?
<body>
<input type="button" value="-" onclick="sub_num();"/>
<div id="num"></div>
<input type="button" value="+" onclick="add_num();"/>
<script>
function add_num(){
var obj = document.getElementById('num');
var get_num = parseInt(obj.innerText);
get_num += ;
obj.innerText = get_num
}
function sub_num(){
var obj = document.getElementById('num');
var get_num = parseInt(obj.innerText);
if(get_num<=){
alert("数量不能为负数")
} else {
get_num -=
obj.innerText = get_num
}
}
</script>
</body>
js 中操作的步骤:
1.找到这个标签
2.获取标签里的字符串
3.将获取到的值加1或者减1
3、创建标签
方式一(采用对象的模式):
var obj = document.createElement('a');
obj.href = "http://www.etiantian.org";
obj.innerText = "老男孩"; var container = document.getElementById('container');
//container.appendChild(obj);
// 对象要被添加的地方,必须使用appendClild(),如果使用container.innerHTML = obj 添加的不是整个标签对象,而是http://www.etiantian.org 这个字符串.
// 记住,如果要使用对象模式,就使用appendChild
//container.insertBefore(obj, container.firstChild);
//container.insertBefore(obj, document.getElementById('hhh'));
方式二:
var container = document.getElementById('container');
var obj = "<input type='text' />";
container.innerHTML = obj;
// 'beforeBegin', 'afterBegin', 'beforeEnd', 'afterEnd'
//container.insertAdjacentHTML("beforeEnd",obj); 前面指定位置,后面那个参数指定要加的对象
4、标签属性
var obj = document.getElementById('container');
固定属性
obj.id
obj.id = "nid"
obj.className
obj.style.fontSize = "88px";
#我们知道在fontSize在style的真实写法是 style = 'font-size = 88px;'
# 所以当通过 obj.style.xxYx 找style里面的元素时,遇到 - 的时候,就把-去掉,并把-后面的字符大写:如font-size 写成 fontSize 自定义属性
obj.setAttribute(name,value)
obj.getAttribute(name)
obj.removeAttribute(name)
5、提交表单
document.geElementById('form').submit()
之前我们做提交表单,都是使用form标签,普通方式的代码如下:
<form action="http://www.sogou.com/web" method="get">
<input name="query" type="text" >
<input type="submit" value="提交">
</form>
这是我们通过submit标签提交的,那么我们想,能不能通过div标签提交?
能,默认肯定不能提交,解决办法那是不是在div中加onclick事件,
提交的流程:
.找到这个要提交的form 标签
. 执行form_obj.submit()方法就可以提交了.
代码如下:
<body>
<form id="form1" action="http://www.sogou.com/web" method="get">
<input name="query" type="text" >
<!--<input type="submit" value="提交">-->
<div onclick="f1();">提交</div>
</form>
<script type="text/javascript">
function f1() {
document.getElementById('form1').submit();
}
</script>
</body>
上面的知识点:不仅submit可以提交form表单,其他也可以.
设置默认要求提交时表单不能为空:
场景:我们知道当我们登录网站,输入用户名和密码时,要通过form标签和input里的submit类型标签.
正常情况下,我们点击submit标签就会把form中的input.value内容提交到后台.
那么如用户只输入用户名没输入密码时,是不是要告诉用户:"你有没填写的字段,不能提交".
实现方法就是在submit标签加上onclick事件,然后去校验几个input标签里是否有值.如果没满足条件就让onclick事件反回false.
具体代码如下:
<body>
<form id="form1" action="http://www.sogou.com/web" method="get">
<input name="query" type="text" >
<input type="submit" onclick="return f3();" value="提22交">
</form>
<script type="text/javascript">
function f3() {
var q = document.getElementsByName('query')[];
if (q.value.trim()){
alert('')
return true;
} else {
alert("");
return false;
}
}
</script>
</body>
6、事件 7、其他功能
console.log()
alert()
confirm()
# confirm 有什么用呢?我们在页面上删除某条纪录,有时会出来一个"确认"和"取消"的窗口,这就是confirm.
确认反回的是true,取消反回的是false
代码举例:
<body>
<input type="button" value="上来啊" onmousemove="MyConfirm();">
<script>
function MyConfirm(){
var ret = confirm("是不是要点!")
alert(ret)
}
</script>
</body>
这是confirm最简单的实现方法,真实开发中,一般情况下confirm弹窗咱们是自己写的,因为默认的太难看了. // URL和刷新
location.href 获取当前html文件的访问路径
location.href = "url" 可以获得,当然也可以赋值,赋值的时候相当于跳转了
window.location.reload() 重新加载 这两个好用处不大 // 定时器
setInterval("alert()",);
clearInterval(obj)
#告诉大家,setInterval其实就是每隔多长时间创建一个线程,用这个东西能做什么呢?可以做标签的滚动效果. setTimeout(); # 和setInterval 用法一样,不一样的是只执行一次.比如说setTimeout('f1()',)意思是过两秒后执行一次f1函数
clearTimeout(obj)
# setTimeout() 的应用场景:我们看到qq邮箱删除邮件的时候,在页面上会提示删除邮件成功,5秒后这个提示字样消失了.就是用setTimeout做的.
# 具体是,当你点击删除的时候,立马跳出删除成功的标签.紧接着在函数中在调用setTimeout('删除这个标签的函数',)
jQuery 简介
学了jQuery后,你不能理解为就不用js和Dom了,应该说复杂的操作都用jQuery操作.而相对于简单的操作,jQuery没必要去封装简单的操作.
jQuery是一个兼容多浏览器的javascript库,核心理念是write less,do more(写得更少,做得更多),对javascript进行了封装,是的更加便捷的开发,并且在兼容性方面十分优秀。
http://www.php100.com/manual/jquery/
我们使用js,dom ,jQuery 最终目的让html页面动起来.
动起来技术实现方法就是让 事件 和 改html文件里的内容 关联起来
改 html 文件内容就需要两部分:
1. 获取要改动的标签
2. 修改
无论是使用js还是使用jQuery都是围绕着上面两个目的进行的 .
所以jQuery提供的方法,从功能上大致就分为两个方法:1.获取标签 2.修改
jQuery实现了几百种方法,多,但是无论多牛B的网站也都没全用到,只会用到那么一些常用的(大概几十种). jQuery之基本选择器
jQuery中提供的用于获取标签的方法都有哪些?
jQuery提供的 "选择器" 和 "筛选器" 两大分类都是用于获取标签的方法.
选择器获得的是结果集,筛选器是从结果集里跳出来指定条件的 很好理解
筛选器: 过滤 查找 串联
最基本的选择器(3种):
$("#id").text(''); #id 选择器,找到1个对象
$("a").text(''); # 标签选择器,找到对象集合,并且内部循环将这些对象的字符串值设置成222
$(".c1").text('') # class选择器,找到 对象集合,并且内部循环将这些对象的字符串值设置成333
上面3中选择器是jQuery中最基本的选择器,一定要会.
还有要会组合使用它们,如:
$("#n3 div .c4 span").text('') # 找到id为n3标签下的div标签下的class为c4下的span标签的字符串值设置成4444
一次查找多个类型的选择器时用逗号隔开,如下:
$("div,a,.c4").text('') 查找所有div,所有a标签以及所有calssname为c4的标签,并把它们的字符串值设置成555
接下来看看一些其他选择器:不要求记住,但是你要知道,当碰到某些场景,你能想起来哪种类型的,能够查到即可.
比较重要的:
属性选择器类:
筛选器以下几种必须要会:
children() 目标标签的儿子们
find() 找到的结果集中find
next() 目标标签的下一个兄弟标签
nextAll() 目标标签的下面的所有兄弟标签
parent() 目标标签的父标签
prev() 目标标签的上一个标签
prevall() 目标标签的上面所有的兄弟标签
siblings() 目标标签的所有兄弟标签
这些筛选器里的方法只要记住,能完成99.99%的工作
python2.0_s12_day13_javascript&Dom&jQuery的更多相关文章
- BOM DOM jQuery
. BOM . location相关 . location.href . location.href="http://www.sogo.com" . location.reload ...
- Python之Web前端Dom, jQuery
Python之Web前端: Dom jQuery ###Dom 一. 什么是Dom? 文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它 ...
- javaScript DOM JQuery AJAX
http://www.cnblogs.com/wupeiqi/articles/5369773.html 一 JavaScript JavaScript是一门编程语言,浏览器内置了JavaScript ...
- dom core,html dom,css dom,jquery 中的dom操作
前端开发中为达到某种目的,往往有很多方法:dom core,html dom,jquery; dom core/jquery主要通过函数调用的方式(getAttribute("属性名&quo ...
- Day16 DOM &jQuery
一.本节主要内容 JavaScript 正则表达式 字符串操作的三个方法 DOM(知道就行,一般使用jQuery) 查找: 直接查找: document.getElementById 根据ID获取一个 ...
- Python 一路走来 DOM & Jquery
DOM 查找: 直接查找 间接查找 —getElementById ...
- python运维开发(十六)----Dom&&jQuery
内容目录: Dom 查找 操作 事件 jQuery 查找 筛选 操作 事件 扩展 Dom 文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它 ...
- Python学习笔记整理总结【web基础】【web/HTML/CSS/JavaScript/DOM/jQuery】
一.HTML HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以 ...
- DOM jquery
DOM 文档对象模型(Document Object Model)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式.我们最为关心的是,DOM ...
随机推荐
- Date函数基础知识整理
Date类型:1.Date.parse()接收一个表示日期的字符串参数,然后再根据这个字符串返回响应的日期的毫秒数:如:创建一个日期: <script> // var someDate=n ...
- jQuery-File-Upload文件上传
http://blueimp.github.io/jQuery-File-Upload/index.html
- eclipse egit 报错 The current branch is not configured for pull No value for key branch.master
eclipse egit 插件 pull报错 The current branch is not configured for pull No value for key branch.master ...
- FreeRTOS基础篇教程目录汇总
以下教程(大部分章节)(尤其理论介绍部分)转载自安富莱电子,官网链接: http://forum.armfly.com/forum.php 然后根据安富莱的教程自己做了分析和测试,希望大家共同进步. ...
- 【C#】获取机器码MachineCode
需求:机器码可以用于校验用户是否用的同一台电脑登录,比如在别的机器上登录时做强制下线(踢人下线).通常在用户注册时,计算一次用户的机器码跟随注册信息一起发送给服务器. 机器码的作用看百度百科: 定义规 ...
- 解析:SO_REUSEADDR bind: address in use
http://blog.sina.com.cn/s/blog_53a2ecbf010095db.html socket中的SO_REUSEADDR Q: 我正在写一个unix server程序,不是d ...
- m72 gprs模块的应用编写
#include <fcntl.h>#include <termios.h>#include "AppInit.h"#include "A5_Se ...
- RESTful测试工具-RESTClient
很多测试人可能对RESTful的概念还是很模糊的,那么到底什么是RESTful?百度百科给出的一句话描述是一个架构样式的网络系统,似乎还是有点不懂?OK,说到Restful,我们一般从REST开始说起 ...
- ES6 学习笔记 (2)-- Liunx环境安装Node.js 与 搭建 Node.js 开发环境
笔记参考来源:廖雪峰老师的javascript全栈教程 一.安装Node.js 目前Node.js的最新版本是6.2.x.首先,从Node.js官网下载对应平台的安装程序. 1.下载 选择对应的Liu ...
- java-关于getClass().getClassLoader()
源地址:http://blog.sina.com.cn/s/blog_6ec6be0e01011xof.html InputStream is = getClass().getClassLoader( ...