<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DOM &#8211; 个人随笔</title>
	<atom:link href="/label/dom/feed" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description></description>
	<lastBuildDate>Sat, 19 May 2018 09:48:15 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.1</generator>

<image>
	<url>/wp-content/uploads/2022/01/cropped-截屏2022-01-01-18.57.09-32x32.png</url>
	<title>DOM &#8211; 个人随笔</title>
	<link>/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Jquery（二）元素集合查找、链式操作、DOM、缓存数据</title>
		<link>/%e5%89%8d%e7%ab%af%e6%8a%80%e6%9c%af/3437.html</link>
					<comments>/%e5%89%8d%e7%ab%af%e6%8a%80%e6%9c%af/3437.html#respond</comments>
		
		<dc:creator><![CDATA[Mr.Lee]]></dc:creator>
		<pubDate>Sat, 19 May 2018 09:48:15 +0000</pubDate>
				<category><![CDATA[Jquery]]></category>
		<category><![CDATA[前端技术]]></category>
		<category><![CDATA[前端框架]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[元素集合查找]]></category>
		<category><![CDATA[缓存数据]]></category>
		<category><![CDATA[链式操作]]></category>
		<guid isPermaLink="false">/?p=3437</guid>

					<description><![CDATA[jQuery第二讲 过滤元素 filter()：过滤元素 hasClass()：检查有没有指定的类 is()： [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1>jQuery第二讲</h1>
<h2>过滤元素</h2>
<ol>
<li>
  filter()：过滤元素
</li>
<li>
  hasClass()：检查有没有指定的类
</li>
<li>
  is()：检查有没有指定的选择器
</li>
</ol>
<p><img fetchpriority="high" decoding="async" width="1049" height="481" src="/wp-content/uploads/2018/05/word-image-3040.png" class="wp-image-3439" srcset="/wp-content/uploads/2018/05/word-image-3040.png 1049w, /wp-content/uploads/2018/05/word-image-3040-300x138.png 300w, /wp-content/uploads/2018/05/word-image-3040-768x352.png 768w, /wp-content/uploads/2018/05/word-image-3040-1024x470.png 1024w" sizes="(max-width: 1049px) 100vw, 1049px" /></p>
<h2>在元素集合中查找</h2>
<ol>
<li>
  find()：在子元素中查找
</li>
<li>
  children()：匹配子元素集合
</li>
<li>
  next()：查找下一个元素
</li>
<li>
  nextAll()：后面所有元素
</li>
<li>
  prev()：前面的元素
</li>
<li>
  prevAll()：前面所有元素
</li>
<li>
  siblings()：所有同辈元素
</li>
<li>
  parent()：元素的父节点
</li>
<li>
  parents()：元素的父节点的集合
</li>
</ol>
<p>
  &lt;script type=&#8221;text/javascript&#8221;&gt;
</p>
<p>
  $(document).ready(function(e) {
</p>
<p>
      $(&#8220;:button&#8221;).click(function(e) {
</p>
<p>
          //$(&#8216;form&#8217;).find(&#8216;:text&#8217;).css(&#8216;background-color&#8217;,&#8217;#930&#8242;);	//在子元素中查找
</p>
<p>
  		/*
</p>
<p>
  		$(&#8216;form&gt;fieldset&#8217;).children(&#8216;input&#8217;).each(function(index, element) {		//获取子元素
</p>
<p>
              console.log($(this));
</p>
<p>
          });
</p>
<p>
  		*/
</p>
<p>
  		//$(&#8216;#firstname&#8217;).next().next().css(&#8216;background-color&#8217;,&#8217;#930&#8242;);
</p>
</p>
<p>
  		//$(&#8216;#firstname&#8217;).nextAll().css(&#8216;background-color&#8217;,&#8217;#930&#8242;);
</p>
</p>
<p>
  		//$(&#8216;#city&#8217;).prev().prev().css(&#8216;background-color&#8217;,&#8217;#930&#8242;);
</p>
</p>
<p>
  		//$(&#8216;#city&#8217;).prevAll().css(&#8216;background-color&#8217;,&#8217;#930&#8242;);
</p>
</p>
<p>
  		//$(&#8216;#lastname&#8217;).siblings().css(&#8216;background-color&#8217;,&#8217;#930&#8242;);
</p>
</p>
<p>
  		//$(&#8216;#lastname&#8217;).parent().css(&#8216;background-color&#8217;,&#8217;#930&#8242;);
</p>
</p>
<p>
  		$(&#8216;#lastname&#8217;).parents(&#8216;body&#8217;).css(&#8216;background-color&#8217;,&#8217;#930&#8242;);
</p>
<p>
      });
</p>
<p>
  });
</p>
<p>
  &lt;/script&gt;
</p>
<p>
  &lt;p&gt;锄禾日当午&lt;/p&gt;
</p>
<p>
  &lt;form&gt;
</p>
<p>
      &lt;fieldset&gt;
</p>
<p>
      	&lt;legend&gt;在元素中查找&lt;/legend&gt;
</p>
<p>
      姓：&lt;input type=&#8221;text&#8221; id=&#8221;firstname&#8221; value=&#8221;张&#8221; /&gt;&lt;br /&gt;
</p>
<p>
      名：&lt;input type=&#8221;text&#8221; id=&#8221;lastname&#8221; value=&#8221;三峰&#8221; /&gt;&lt;br /&gt;
</p>
<p>
      城市：&lt;input type=&#8221;text&#8221; id=&#8221;city&#8221; value=&#8221;上海&#8221; /&gt;&lt;br&gt;
</p>
<p>
      &lt;input type=&#8221;button&#8221; value=&#8221;点击&#8221; id=&#8221;btn&#8221; /&gt;
</p>
<p>
      &lt;/fieldset&gt;
</p>
<p>
  &lt;/form&gt;
</p>
<h2>链式操作</h2>
<p>
  把多个操作用“.”连成一行，用来简化操作。
</p>
<p>
  原理：每个方法执行完毕后，将当前对象返回出来。
</p>
<p><img decoding="async" width="634" height="69" src="/wp-content/uploads/2018/05/word-image-3041.png" class="wp-image-3440" srcset="/wp-content/uploads/2018/05/word-image-3041.png 634w, /wp-content/uploads/2018/05/word-image-3041-300x33.png 300w" sizes="(max-width: 634px) 100vw, 634px" /></p>
<h2>例题</h2>
<p><img decoding="async" width="1233" height="386" src="/wp-content/uploads/2018/05/word-image-3042.png" class="wp-image-3441" srcset="/wp-content/uploads/2018/05/word-image-3042.png 1233w, /wp-content/uploads/2018/05/word-image-3042-300x94.png 300w, /wp-content/uploads/2018/05/word-image-3042-768x240.png 768w, /wp-content/uploads/2018/05/word-image-3042-1024x321.png 1024w" sizes="(max-width: 1233px) 100vw, 1233px" /></p>
<h2>DOM操作</h2>
<h3>在元素的内部添加内容</h3>
<ol>
<li>
  在内部的后面添加内容</p>
<ol>
<li>
    A. append(B)：将B添加到A里面的后面
  </li>
<li>
    A. appendTo(B)：将A添加到B里面的后面
  </li>
</ol>
</li>
</ol>
<p><img loading="lazy" decoding="async" width="1095" height="264" src="/wp-content/uploads/2018/05/word-image-3043.png" class="wp-image-3442" srcset="/wp-content/uploads/2018/05/word-image-3043.png 1095w, /wp-content/uploads/2018/05/word-image-3043-300x72.png 300w, /wp-content/uploads/2018/05/word-image-3043-768x185.png 768w, /wp-content/uploads/2018/05/word-image-3043-1024x247.png 1024w" sizes="(max-width: 1095px) 100vw, 1095px" /></p>
<ol>
<li>
  在内部的前面添加内容</p>
<ol>
<li>
    A.prepend(B)：在A的内部的前面添加B的内容
  </li>
<li>
    A.prependTo(B)：将A添加到B的内部的前面
  </li>
</ol>
</li>
</ol>
<p><img loading="lazy" decoding="async" width="754" height="248" src="/wp-content/uploads/2018/05/word-image-3044.png" class="wp-image-3443" srcset="/wp-content/uploads/2018/05/word-image-3044.png 754w, /wp-content/uploads/2018/05/word-image-3044-300x99.png 300w" sizes="(max-width: 754px) 100vw, 754px" /></p>
<h3>在元素的外部添加内容</h3>
<ol>
<li>
  在元素外部的后面</p>
<ol>
<li>
    A.after(B)：将B插入到A外部的后面
  </li>
<li>
    A.insertAfter(B)：将A插入到B的外部的后面
  </li>
</ol>
</li>
</ol>
<p><img loading="lazy" decoding="async" width="821" height="266" src="/wp-content/uploads/2018/05/word-image-3045.png" class="wp-image-3444" srcset="/wp-content/uploads/2018/05/word-image-3045.png 821w, /wp-content/uploads/2018/05/word-image-3045-300x97.png 300w, /wp-content/uploads/2018/05/word-image-3045-768x249.png 768w" sizes="(max-width: 821px) 100vw, 821px" /></p>
<ol>
<li>
  在元素外部的前面</p>
<ol>
<li>
    A.before(B)：将B插入到A的外部的前面
  </li>
<li>
    A.insert Before(B)：将A插入到B的外部的前面
  </li>
</ol>
</li>
</ol>
<p><img loading="lazy" decoding="async" width="984" height="269" src="/wp-content/uploads/2018/05/word-image-3046.png" class="wp-image-3445" srcset="/wp-content/uploads/2018/05/word-image-3046.png 984w, /wp-content/uploads/2018/05/word-image-3046-300x82.png 300w, /wp-content/uploads/2018/05/word-image-3046-768x210.png 768w" sizes="(max-width: 984px) 100vw, 984px" /></p>
<h2>例题（年月日）</h2>
<p>
  效果：选择年和月，自动显示对应的天数
</p>
<p>
  &lt;script type=&#8221;text/javascript&#8221;&gt;
</p>
<p>
  //添加option标签
</p>
<p>
  function insertOption(end,target){
</p>
<p>
  	for(var i=1;i&lt;=end;i++){
</p>
<p>
  		$(&#8216;&lt;option&gt;&#8217;).html(i).attr(&#8216;value&#8217;,i).appendTo($(&#8216;#&#8217;+target));
</p>
<p>
  	}
</p>
<p>
  }
</p>
<p>
  //添加年
</p>
<p>
  function addYear(){
</p>
<p>
  	var yy=&lt;?php echo date(&#8216;Y&#8217;)?&gt;;
</p>
<p>
  	for(var i=yy;i&gt;=yy-100;i&#8211;){
</p>
<p>
  		$(&#8216;&lt;option&gt;&#8217;).html(i).attr(&#8216;value&#8217;,i).appendTo($(&#8216;#year&#8217;));
</p>
<p>
  	}
</p>
<p>
  }
</p>
<p>
  //添加月
</p>
<p>
  function addMonth(){
</p>
<p>
  	insertOption(12,&#8217;month&#8217;)
</p>
<p>
  }
</p>
<p>
  //添加日
</p>
<p>
  function addDay(){
</p>
<p>
  	$(&#8216;#day&#8217;).html(&#8221;);
</p>
<p>
  	var yy=$(&#8216;#year&#8217;).val();
</p>
<p>
  	var mm=$(&#8216;#month&#8217;).val();
</p>
<p>
  	if(mm==1||mm==3||mm==5||mm==7||mm==8||mm==10||mm==12){
</p>
<p>
  		insertOption(31,&#8217;day&#8217;);
</p>
<p>
  	}else if(mm==2){
</p>
<p>
  		if(yy%4==0 &amp;&amp; yy%100!=0 || yy%400==0){
</p>
<p>
  			insertOption(29,&#8217;day&#8217;)
</p>
<p>
  		}else{
</p>
<p>
  			insertOption(28,&#8217;day&#8217;);
</p>
<p>
  		}
</p>
<p>
  	}
</p>
<p>
  	else
</p>
<p>
  		insertOption(30,&#8217;day&#8217;);
</p>
<p>
  }
</p>
<p>
  $(document).ready(function(e) {
</p>
<p>
      addYear();
</p>
<p>
  	addMonth();
</p>
<p>
  	addDay();
</p>
<p>
  	$(&#8216;#year,#month&#8217;).change(function(e) {
</p>
<p>
          addDay();
</p>
<p>
      });
</p>
<p>
  });
</p>
<p>
  &lt;/script&gt;
</p>
<p>
  &lt;form id=&#8221;form1&#8243; name=&#8221;form1&#8243; method=&#8221;post&#8221; action=&#8221;&#8221;&gt;
</p>
<p>
    &lt;select name=&#8221;year&#8221; id=&#8221;year&#8221;&gt;&lt;/select&gt;年
</p>
<p>
    &lt;select name=&#8221;month&#8221; id=&#8221;month&#8221;&gt;&lt;/select&gt;月
</p>
<p>
    &lt;select name=&#8221;day&#8221; id=&#8221;day&#8221;&gt;&lt;/select&gt;日
</p>
<p>
  &lt;/form&gt;
</p>
<p>
  运行结果
</p>
<p><img loading="lazy" decoding="async" width="354" height="91" src="/wp-content/uploads/2018/05/word-image-3047.png" class="wp-image-3446" srcset="/wp-content/uploads/2018/05/word-image-3047.png 354w, /wp-content/uploads/2018/05/word-image-3047-300x77.png 300w" sizes="(max-width: 354px) 100vw, 354px" /></p>
<h2>例题（模拟126邮箱注册效果）</h2>
<h3>Sprits技术</h3>
<p>
  将页面用到的许多小图拼到一个大图上，通过CSS来显示不同的区域。可以有效的减少往返次数。
</p>
<p>
  &lt;style type=&#8221;text/css&#8221;&gt;
</p>
<p>
  /*按钮的样式*/
</p>
<p>
  .btn{
</p>
<p>
  	width:119px;
</p>
<p>
  	height:37px;
</p>
<p>
  	background-image:url(images/glb_v2.png);
</p>
<p>
  	background-repeat:no-repeat;
</p>
<p>
  	background-position:-146px -362px;
</p>
<p>
  	cursor:pointer;
</p>
<p>
  }
</p>
<p>
  /*鼠标移动到按钮上*/
</p>
<p>
  .btn:hover{
</p>
<p>
  	background-position:-289px -362px;
</p>
<p>
  }
</p>
<p>
  &lt;/style&gt;
</p>
<p>
  用户名：&lt;input type=&#8221;text&#8221; /&gt;&lt;br /&gt;
</p>
<p>
  &lt;input type=&#8221;button&#8221; value=&#8221;返回&#8221; class=&#8221;btn&#8221; /&gt;
</p>
<p>
  &lt;input type=&#8221;button&#8221; value=&#8221;提交&#8221; class=&#8221;btn&#8221; /&gt;
</p>
<p>
  运行结果
</p>
<p><img loading="lazy" decoding="async" width="354" height="76" src="/wp-content/uploads/2018/05/word-image-3048.png" class="wp-image-3447" srcset="/wp-content/uploads/2018/05/word-image-3048.png 354w, /wp-content/uploads/2018/05/word-image-3048-300x64.png 300w" sizes="(max-width: 354px) 100vw, 354px" /></p>
<h3>模仿126邮箱注册</h3>
<p>
  &lt;style type=&#8221;text/css&#8221;&gt;
</p>
<p>
  *{
</p>
<p>
  	margin:0px;
</p>
<p>
  	padding:0px;
</p>
<p>
  	font-size:14px;
</p>
<p>
  	font-family:&#8217;微软雅黑&#8217;;
</p>
<p>
  }
</p>
<p>
  dt,dd{
</p>
<p>
  	float:left;
</p>
<p>
  }
</p>
<p>
  .txt{
</p>
<p>
  	width:300px;
</p>
<p>
  	height:17px;
</p>
<p>
  	border:#7B7B7B solid 1xp;
</p>
<p>
  }
</p>
<p>
  .bg&gt;span,.span{
</p>
<p>
  	width:14px;
</p>
<p>
  	height:14px;
</p>
<p>
  	display:inline-block;
</p>
<p>
  	background:url(images/glb_v2.png) no-repeat -36px -288px;
</p>
<p>
  }
</p>
<p>
  .bg{
</p>
<p>
  	color:#C00;
</p>
<p>
  	display:none;
</p>
<p>
  }
</p>
<p>
  &lt;/style&gt;
</p>
<p>
  &lt;script type=&#8221;text/javascript&#8221; src=&#8221;js/jquery-1.8.3.min.js&#8221;&gt;&lt;/script&gt;
</p>
<p>
  &lt;script type=&#8221;text/javascript&#8221;&gt;
</p>
<p>
  $(document).ready(function(e) {
</p>
<p>
  	//设置样式
</p>
<p>
      $(&#8216;#pwd&#8217;).blur(function(e) {
</p>
<p>
          var pwd=$(this).val();
</p>
<p>
  		if(!(pwd.length&gt;=6 &amp;&amp; pwd.length&lt;=16)){
</p>
<p>
  			//方法一：
</p>
<p>
  			/*
</p>
<p>
  			$(&#8216;dd&gt;div:first&#8217;).hide();	//隐藏
</p>
<p>
  			$(&#8216;dd&gt;div:last&#8217;).show();	//显示
</p>
<p>
  			*/
</p>
<p>
  			//方法二
</p>
<p>
  			var span=$(&#8216;&lt;span&gt;&#8217;).addClass(&#8216;span&#8217;);
</p>
<p>
  			$(&#8216;dd&gt;div:first&#8217;).html(&#8216;密码长度是6~16个字符&#8217;).prepend(span)
</p>
<p>
  		}
</p>
<p>
      });
</p>
<p>
  });
</p>
<p>
  &lt;/script&gt;
</p>
<p>
  &lt;/head&gt;
</p>
<p>
  &lt;body&gt;
</p>
<p>
  &lt;form&gt;
</p>
<p>
  &lt;dl&gt;
</p>
<p>
  	&lt;dt&gt;密码：&lt;/dt&gt;
</p>
<p>
      &lt;dd&gt;
</p>
<p>
      	&lt;input type=&#8221;password&#8221; id=&#8221;pwd&#8221; class=&#8221;txt&#8221; /&gt;
</p>
<p>
          &lt;div&gt;6~16个字符，区分大小写&lt;/div&gt;
</p>
<p>
          &lt;!&#8211;&lt;div class=&#8221;bg&#8221;&gt;&lt;span&gt;&lt;/span&gt;密码长度是6~16个字符&lt;/div&gt; &#8211;&gt;
</p>
<p>
      &lt;/dd&gt;
</p>
<p>
  &lt;/dl&gt;
</p>
<p>
  &lt;/form&gt;
</p>
<p><img loading="lazy" decoding="async" width="386" height="52" src="/wp-content/uploads/2018/05/word-image-3049.png" class="wp-image-3448" srcset="/wp-content/uploads/2018/05/word-image-3049.png 386w, /wp-content/uploads/2018/05/word-image-3049-300x40.png 300w" sizes="(max-width: 386px) 100vw, 386px" /></p>
<h2>替换DOM元素</h2>
<ol>
<li>
  replaceAll(选择器)
</li>
<li>
  replaceWith(内容)
</li>
</ol>
<p><img loading="lazy" decoding="async" width="683" height="228" src="/wp-content/uploads/2018/05/word-image-3050.png" class="wp-image-3449" srcset="/wp-content/uploads/2018/05/word-image-3050.png 683w, /wp-content/uploads/2018/05/word-image-3050-300x100.png 300w" sizes="(max-width: 683px) 100vw, 683px" /></p>
<p>
  例题
</p>
<p>
  &lt;style type=&#8221;text/css&#8221;&gt;
</p>
<p>
  .light{
</p>
<p>
  	color:#F00;
</p>
<p>
  }
</p>
<p>
  &lt;/style&gt;
</p>
<p>
  &lt;script type=&#8221;text/javascript&#8221; src=&#8221;js/jquery-1.8.3.min.js&#8221;&gt;&lt;/script&gt;
</p>
<p>
  &lt;script type=&#8221;text/javascript&#8221;&gt;
</p>
<p>
  $(document).ready(function(e) {
</p>
<p>
      $(&#8216;#key&#8217;).blur(function(e) {
</p>
<p>
  		if($(this).val()==&#8221;)
</p>
<p>
  			return;
</p>
<p>
  		//清空样式
</p>
<p>
  		$(&#8216;.light&#8217;).each(function(index, element) {
</p>
<p>
              $(this).replaceWith($(this).text());	//通过自己的文本替换自己节点
</p>
<p>
          });
</p>
<p>
  		//添加样式
</p>
<p>
  		var reg=new RegExp($(this).val(),&#8217;g&#8217;);	//实例化正则表达式而
</p>
<p>
          var str=$(&#8216;#content&#8217;).html().replace(reg,'&lt;span class=&#8221;light&#8221;&gt;&#8217;+$(this).val()+'&lt;/span&gt;&#8217;); //内容替换
</p>
<p>
  		$(&#8216;#content&#8217;).html(str);
</p>
<p>
      });
</p>
<p>
  });
</p>
<p>
  &lt;/script&gt;
</p>
<p>
  &lt;/head&gt;
</p>
<p>
  &lt;body&gt;
</p>
<p>
  &lt;input type=&#8221;text&#8221; id=&#8221;key&#8221; /&gt;
</p>
<p>
  &lt;div id=&#8221;content&#8221;&gt;
</p>
<p>
  &lt;h3&gt;月饼机_月饼机价格月饼机老品牌值得信赖&lt;/h3&gt;
</p>
<p>
  杭州旭众新型小型月饼机厂家 出面出馅更加稳定,小型月饼机厂家 一机多用,价格实惠!老品牌小型月饼机厂家 值得信赖.更有服务到家,全国联保.购机无忧!小型月饼机厂家
</p>
<p>
  &lt;/div&gt;
</p>
<p>
  运行结果
</p>
<p><img loading="lazy" decoding="async" width="1078" height="188" src="/wp-content/uploads/2018/05/word-image-3051.png" class="wp-image-3450" srcset="/wp-content/uploads/2018/05/word-image-3051.png 1078w, /wp-content/uploads/2018/05/word-image-3051-300x52.png 300w, /wp-content/uploads/2018/05/word-image-3051-768x134.png 768w, /wp-content/uploads/2018/05/word-image-3051-1024x179.png 1024w" sizes="(max-width: 1078px) 100vw, 1078px" /></p>
<h2>删除DOM元素</h2>
<ol>
<li>
  empty()：清空节点中的内容
</li>
<li>
  remove()：删除节点
</li>
</ol>
<p><img loading="lazy" decoding="async" width="731" height="378" src="/wp-content/uploads/2018/05/word-image-3052.png" class="wp-image-3451" srcset="/wp-content/uploads/2018/05/word-image-3052.png 731w, /wp-content/uploads/2018/05/word-image-3052-300x155.png 300w" sizes="(max-width: 731px) 100vw, 731px" /></p>
<h2>克隆DOM元素</h2>
<ol>
<li>
  clone()：只复制对象节点
</li>
<li>
  clone(true)：复制对象节点及对应的事件
</li>
</ol>
<p><img loading="lazy" decoding="async" width="849" height="285" src="/wp-content/uploads/2018/05/word-image-3053.png" class="wp-image-3452" srcset="/wp-content/uploads/2018/05/word-image-3053.png 849w, /wp-content/uploads/2018/05/word-image-3053-300x101.png 300w, /wp-content/uploads/2018/05/word-image-3053-768x258.png 768w" sizes="(max-width: 849px) 100vw, 849px" /></p>
<h2>获取对象的长度和对象的索引</h2>
<p>
  获取长度的方法
</p>
<ol>
<li>
  length
</li>
<li>
  size()
</li>
</ol>
<p>
  获取元素的索引
</p>
<p>
  index()：索引号从0开始
</p>
<p><img loading="lazy" decoding="async" width="887" height="321" src="/wp-content/uploads/2018/05/word-image-3054.png" class="wp-image-3453" srcset="/wp-content/uploads/2018/05/word-image-3054.png 887w, /wp-content/uploads/2018/05/word-image-3054-300x109.png 300w, /wp-content/uploads/2018/05/word-image-3054-768x278.png 768w" sizes="(max-width: 887px) 100vw, 887px" /></p>
<h2>DOM对象和jQuery对象互换</h2>
<p>
  如果要用jQuery的方法就必须要转成jQuery对象
</p>
<p>
  如果要用JS方法必须转成DOM对象
</p>
<p>
  实现转换：
</p>
<ol>
<li>
  将DOM对象转成JQuery对象：通过$()或jQuery()
</li>
<li>
  将JQuery对象转成DOM对象：通过get()或数组的方式
</li>
</ol>
<p><img loading="lazy" decoding="async" width="1110" height="211" src="/wp-content/uploads/2018/05/word-image-3055.png" class="wp-image-3454" srcset="/wp-content/uploads/2018/05/word-image-3055.png 1110w, /wp-content/uploads/2018/05/word-image-3055-300x57.png 300w, /wp-content/uploads/2018/05/word-image-3055-768x146.png 768w, /wp-content/uploads/2018/05/word-image-3055-1024x195.png 1024w" sizes="(max-width: 1110px) 100vw, 1110px" /></p>
<h2>缓存数据</h2>
<ol>
<li>
  data(name)：获取缓存数据
</li>
<li>
  data(name,value)：缓存数据
</li>
</ol>
<p><img loading="lazy" decoding="async" width="1181" height="499" src="/wp-content/uploads/2018/05/word-image-3056.png" class="wp-image-3455" srcset="/wp-content/uploads/2018/05/word-image-3056.png 1181w, /wp-content/uploads/2018/05/word-image-3056-300x127.png 300w, /wp-content/uploads/2018/05/word-image-3056-768x324.png 768w, /wp-content/uploads/2018/05/word-image-3056-1024x433.png 1024w" sizes="(max-width: 1181px) 100vw, 1181px" /></p>
<h2>几个常用的方法</h2>
<p>
  1、$.merge()
</p>
<p>
  2、$.trim()
</p>
<p><img loading="lazy" decoding="async" width="730" height="114" src="/wp-content/uploads/2018/05/word-image-3057.png" class="wp-image-3456" srcset="/wp-content/uploads/2018/05/word-image-3057.png 730w, /wp-content/uploads/2018/05/word-image-3057-300x47.png 300w" sizes="(max-width: 730px) 100vw, 730px" /></p>
<ol>
<li>
  能够解释dom对象和jQuery对象的区别
</li>
<li>
  能够将dom对象和jQuery对象相互转换
</li>
<li>
  能够将内容插入到元素内部或外部
</li>
<li>
  能够清空元素内容或删除元素本身
</li>
<li>
  能够使用replaceWith()替换元素
</li>
<li>
  能够复制指定元素
</li>
<li>
  能够把内容从外面包裹上新元素
</li>
<li>
  能够使用元素查找或匹配的多个方法
</li>
<li>
  能够使用bind()方法绑定事件
</li>
<li>
  能够熟练使用jQuery的常规事件绑定语法
</li>
<li>
  能够使用事件切换方法hover(),toggle()
</li>
<li>
  能够使用jQuery的基本特效方法 show(),hide(),toggle()
</li>
<li>
  能够使用jQuery的滑动特效方法 slideDown(),slideUp(),slideToggle()
</li>
<li>
  能够使用jQuery的淡入淡出特效方法
</li>
<li>
  能够理解jQuery中插件的作用
</li>
<li>
  能够制作自定义插件
</li>
<li>
  能够使用jQuery实现ajax的get请求
</li>
<li>
  能够使用jQuery实现ajax的post请求
</li>
</ol>
]]></content:encoded>
					
					<wfw:commentRss>/%e5%89%8d%e7%ab%af%e6%8a%80%e6%9c%af/3437.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>JS高级（二）事件、JS闭包、DOM</title>
		<link>/%e5%89%8d%e7%ab%af%e6%8a%80%e6%9c%af/3136.html</link>
					<comments>/%e5%89%8d%e7%ab%af%e6%8a%80%e6%9c%af/3136.html#respond</comments>
		
		<dc:creator><![CDATA[Mr.Lee]]></dc:creator>
		<pubDate>Sat, 19 May 2018 06:56:20 +0000</pubDate>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[前端技术]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[JS闭包]]></category>
		<category><![CDATA[事件]]></category>
		<guid isPermaLink="false">/?p=3136</guid>

					<description><![CDATA[JavaScript高级（2） 目录 一、回顾与加强 1、JavaScript错误类型及特点 1、编译类型的错 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>
  JavaScript高级（2）
</p>
<p>
  目录
</p>
<h1>一、回顾与加强</h1>
<p>
  1、JavaScript错误类型及特点
</p>
<p>
  1、编译类型的错误
</p>
<p>
  编译错误就是语法错误。
</p>
<p>
  <img loading="lazy" decoding="async" width="1017" height="238" src="/wp-content/uploads/2018/05/word-image-2758.png" class="wp-image-3137" srcset="/wp-content/uploads/2018/05/word-image-2758.png 1017w, /wp-content/uploads/2018/05/word-image-2758-300x70.png 300w, /wp-content/uploads/2018/05/word-image-2758-768x180.png 768w" sizes="(max-width: 1017px) 100vw, 1017px" />
</p>
<p>
  2、执行错误
</p>
<p>
  语法上没有错误，结合上下午出现的错误，比如调用了一个不存在的变量或函数等。
</p>
<p>
  <img loading="lazy" decoding="async" width="1056" height="252" src="/wp-content/uploads/2018/05/word-image-2759.png" class="wp-image-3138" srcset="/wp-content/uploads/2018/05/word-image-2759.png 1056w, /wp-content/uploads/2018/05/word-image-2759-300x72.png 300w, /wp-content/uploads/2018/05/word-image-2759-768x183.png 768w, /wp-content/uploads/2018/05/word-image-2759-1024x244.png 1024w" sizes="(max-width: 1056px) 100vw, 1056px" />
</p>
<p>
  2、事件
</p>
<p>
  1、事件驱动式
</p>
<p>
  事件驱动式由：用户的行为+JavaScript引擎捕获用户的行为+<strong>调用处理函数</strong>。实际上就是一个事件的组成。
</p>
<p>
  2、事件处理函数的绑定与执行
</p>
<p>
  ①、行内绑定
</p>
<p>
  在HTML标签内指定事件并写处理程序。
</p>
<p>
  <img loading="lazy" decoding="async" width="847" height="245" src="/wp-content/uploads/2018/05/word-image-2760.png" class="wp-image-3139" srcset="/wp-content/uploads/2018/05/word-image-2760.png 847w, /wp-content/uploads/2018/05/word-image-2760-300x87.png 300w, /wp-content/uploads/2018/05/word-image-2760-768x222.png 768w" sizes="(max-width: 847px) 100vw, 847px" />
</p>
<p>
  ②、行内绑定—动态绑定
</p>
<p>
  如果事件的处理程序又大段的js代码，那么直接写到行内，肯定是不合理的，解决的办法是将大段的js代码封装成函数，然后触发事件的时候，调用这个函数。
</p>
<p>
  <img loading="lazy" decoding="async" width="910" height="279" src="/wp-content/uploads/2018/05/word-image-2761.png" class="wp-image-3140" srcset="/wp-content/uploads/2018/05/word-image-2761.png 910w, /wp-content/uploads/2018/05/word-image-2761-300x92.png 300w, /wp-content/uploads/2018/05/word-image-2761-768x235.png 768w" sizes="(max-width: 910px) 100vw, 910px" />
</p>
<p>
  ③、动态绑定
</p>
<p>
  通过获取元素（标签、节点）的dom对象，然后给dom对象绑定事件的方式来实现事件的绑定。
</p>
<p>
  <img loading="lazy" decoding="async" width="858" height="224" src="/wp-content/uploads/2018/05/word-image-2762.png" class="wp-image-3141" srcset="/wp-content/uploads/2018/05/word-image-2762.png 858w, /wp-content/uploads/2018/05/word-image-2762-300x78.png 300w, /wp-content/uploads/2018/05/word-image-2762-768x201.png 768w" sizes="(max-width: 858px) 100vw, 858px" />
</p>
<p>
  <img loading="lazy" decoding="async" width="1051" height="377" src="/wp-content/uploads/2018/05/word-image-2763.png" class="wp-image-3142" srcset="/wp-content/uploads/2018/05/word-image-2763.png 1051w, /wp-content/uploads/2018/05/word-image-2763-300x108.png 300w, /wp-content/uploads/2018/05/word-image-2763-768x275.png 768w, /wp-content/uploads/2018/05/word-image-2763-1024x367.png 1024w" sizes="(max-width: 1051px) 100vw, 1051px" />
</p>
<p>
  3、在事件处理程序中，this分别表示什么
</p>
<p>
  ①、行内绑定
</p>
<p>
  <img loading="lazy" decoding="async" width="594" height="31" src="/wp-content/uploads/2018/05/word-image-2764.png" class="wp-image-3143" srcset="/wp-content/uploads/2018/05/word-image-2764.png 594w, /wp-content/uploads/2018/05/word-image-2764-300x16.png 300w" sizes="(max-width: 594px) 100vw, 594px" />
</p>
<p>
  <img loading="lazy" decoding="async" width="645" height="242" src="/wp-content/uploads/2018/05/word-image-2765.png" class="wp-image-3144" srcset="/wp-content/uploads/2018/05/word-image-2765.png 645w, /wp-content/uploads/2018/05/word-image-2765-300x113.png 300w" sizes="(max-width: 645px) 100vw, 645px" />
</p>
<p>
  ②、行内绑定—动态执行
</p>
<p>
  <img loading="lazy" decoding="async" width="1026" height="277" src="/wp-content/uploads/2018/05/word-image-2766.png" class="wp-image-3145" srcset="/wp-content/uploads/2018/05/word-image-2766.png 1026w, /wp-content/uploads/2018/05/word-image-2766-300x81.png 300w, /wp-content/uploads/2018/05/word-image-2766-768x207.png 768w, /wp-content/uploads/2018/05/word-image-2766-1024x276.png 1024w" sizes="(max-width: 1026px) 100vw, 1026px" />
</p>
<p>
  ③、动态绑定
</p>
<p>
  <img loading="lazy" decoding="async" width="1022" height="262" src="/wp-content/uploads/2018/05/word-image-2767.png" class="wp-image-3146" srcset="/wp-content/uploads/2018/05/word-image-2767.png 1022w, /wp-content/uploads/2018/05/word-image-2767-300x77.png 300w, /wp-content/uploads/2018/05/word-image-2767-768x197.png 768w" sizes="(max-width: 1022px) 100vw, 1022px" />
</p>
<h1>二、闭包</h1>
<p>
  1、概念
</p>
<p>
  闭包，指的是词法表示包括不被计算的变量的函数，也就是说，函数可以使用函数之外定义的变量。
</p>
<p>
  2、特点（作用）
</p>
<p>
  1、和作用域的特定一致
</p>
<p>
  可以在函数内部使用函数外部的变量。
</p>
<p>
  <img loading="lazy" decoding="async" width="706" height="183" src="/wp-content/uploads/2018/05/word-image-2768.png" class="wp-image-3147" srcset="/wp-content/uploads/2018/05/word-image-2768.png 706w, /wp-content/uploads/2018/05/word-image-2768-300x78.png 300w" sizes="(max-width: 706px) 100vw, 706px" />
</p>
<p>
  2、使用闭包，内存不会释放
</p>
<p>
  <img loading="lazy" decoding="async" width="820" height="309" src="/wp-content/uploads/2018/05/word-image-2769.png" class="wp-image-3148" srcset="/wp-content/uploads/2018/05/word-image-2769.png 820w, /wp-content/uploads/2018/05/word-image-2769-300x113.png 300w, /wp-content/uploads/2018/05/word-image-2769-768x289.png 768w" sizes="(max-width: 820px) 100vw, 820px" />
</p>
<p>
  3、案例
</p>
<p>
  1、点击页面中的三个li标签，能够正常输出li的下标
</p>
<p>
  <img loading="lazy" decoding="async" width="1127" height="451" src="/wp-content/uploads/2018/05/word-image-2770.png" class="wp-image-3149" srcset="/wp-content/uploads/2018/05/word-image-2770.png 1127w, /wp-content/uploads/2018/05/word-image-2770-300x120.png 300w, /wp-content/uploads/2018/05/word-image-2770-768x307.png 768w, /wp-content/uploads/2018/05/word-image-2770-1024x410.png 1024w" sizes="(max-width: 1127px) 100vw, 1127px" />
</p>
<p>
  上面案例的另一种写法：
</p>
<p>
  <img loading="lazy" decoding="async" width="820" height="379" src="/wp-content/uploads/2018/05/word-image-2771.png" class="wp-image-3150" srcset="/wp-content/uploads/2018/05/word-image-2771.png 820w, /wp-content/uploads/2018/05/word-image-2771-300x139.png 300w, /wp-content/uploads/2018/05/word-image-2771-768x355.png 768w" sizes="(max-width: 820px) 100vw, 820px" />
</p>
<p>
  2、页面刷新后，每隔1秒分别输出1/2/3/4/5
</p>
<p>
  <img loading="lazy" decoding="async" width="838" height="416" src="/wp-content/uploads/2018/05/word-image-2772.png" class="wp-image-3151" srcset="/wp-content/uploads/2018/05/word-image-2772.png 838w, /wp-content/uploads/2018/05/word-image-2772-300x149.png 300w, /wp-content/uploads/2018/05/word-image-2772-768x381.png 768w" sizes="(max-width: 838px) 100vw, 838px" />
</p>
<h1>三、DOM</h1>
<p>
  1、什么是DOM
</p>
<p>
  DOM全称是Document Object Model（文档对象模型），它是JS将HTML按文档结构和内容层次抽象出的模型，使得JS有了访问HTML的能力，能够实现对HTML中内容的操作。DOM存在广泛，PHP以及其他语言也有各自的DOM模型。
</p>
<p>
  DOM模型呈现树状结构，因此也叫“树模型”，树中的内容（标签、属性、文本）称为“节点”，包含有元素节点（标签）、属性节点、文本节点。每个节点，都是一个dom节点对象。
</p>
<p>
  2、节点与DOM模型
</p>
<p>
  <img loading="lazy" decoding="async" width="515" height="276" src="/wp-content/uploads/2018/05/word-image-2773.png" class="wp-image-3152" srcset="/wp-content/uploads/2018/05/word-image-2773.png 515w, /wp-content/uploads/2018/05/word-image-2773-300x161.png 300w" sizes="(max-width: 515px) 100vw, 515px" />
</p>
<p>
  根据 W3C 的 HTML DOM 标准，HTML 文档中的所有内容都是节点：
</p>
<p>
  整个文档是一个文档节点，用document对象表示
</p>
<p>
  每个 HTML 元素是元素节点，比如html、head、body、a、h1
</p>
<p>
  HTML 元素内的文本是文本节点
</p>
<p>
  每个 HTML 属性是属性节点，比如href
</p>
<p>
  注释是注释节点
</p>
<p>
  3、节点之间的关系
</p>
<p>
  <img loading="lazy" decoding="async" width="383" height="259" src="/wp-content/uploads/2018/05/word-image-2774.png" class="wp-image-3153" srcset="/wp-content/uploads/2018/05/word-image-2774.png 383w, /wp-content/uploads/2018/05/word-image-2774-300x203.png 300w, /wp-content/uploads/2018/05/word-image-2774-220x150.png 220w" sizes="(max-width: 383px) 100vw, 383px" />
</p>
<p>
  4、元素节点查询操作
</p>
<p>
  1、基于文档（document）查询
</p>
<p>
  document.getElementById(元素id);   //得到一个dom对象
</p>
<p>
  document.getElementsByTagName(标签名); //得到的是一个数组，数组的每个单元是一个dom对象
</p>
<p>
  前面这两种方法推荐使用，因为兼容性好。
</p>
<p>
  document.getElementsByClassName(类名);  //IE8+支持，就是从IE9支持 得到的是一个数组，数组的每个单元是一个dom对象
</p>
<p>
  document.getElementsByName(元素的name属性); //得到的是一个数组
</p>
<p>
  //h5中提供的方法
</p>
<p>
  document.querySelector(css选择器); //IE7+支持  得到的是一个dom对象
</p>
<p>
  document.querySelectorAll(css选择器); //IE7+支持  得到的是一个数组
</p>
<p>
  测试的html：
</p>
<p>
  <img loading="lazy" decoding="async" width="623" height="203" src="/wp-content/uploads/2018/05/word-image-2775.png" class="wp-image-3154" srcset="/wp-content/uploads/2018/05/word-image-2775.png 623w, /wp-content/uploads/2018/05/word-image-2775-300x98.png 300w" sizes="(max-width: 623px) 100vw, 623px" />
</p>
<p>
  js代码及效果：
</p>
<p>
  <img loading="lazy" decoding="async" width="1291" height="392" src="/wp-content/uploads/2018/05/word-image-2776.png" class="wp-image-3155" srcset="/wp-content/uploads/2018/05/word-image-2776.png 1291w, /wp-content/uploads/2018/05/word-image-2776-300x91.png 300w, /wp-content/uploads/2018/05/word-image-2776-768x233.png 768w, /wp-content/uploads/2018/05/word-image-2776-1024x311.png 1024w" sizes="(max-width: 1291px) 100vw, 1291px" />
</p>
<p>
  2、相互关系查询
</p>
<p>
  ①、根据父节点查找子节点
</p>
<p>
  <img loading="lazy" decoding="async" width="750" height="505" src="/wp-content/uploads/2018/05/word-image-2777.png" class="wp-image-3156" srcset="/wp-content/uploads/2018/05/word-image-2777.png 750w, /wp-content/uploads/2018/05/word-image-2777-300x202.png 300w" sizes="(max-width: 750px) 100vw, 750px" />
</p>
<p>
  <img loading="lazy" decoding="async" width="1017" height="308" src="/wp-content/uploads/2018/05/word-image-2778.png" class="wp-image-3157" srcset="/wp-content/uploads/2018/05/word-image-2778.png 1017w, /wp-content/uploads/2018/05/word-image-2778-300x91.png 300w, /wp-content/uploads/2018/05/word-image-2778-768x233.png 768w" sizes="(max-width: 1017px) 100vw, 1017px" />
</p>
<p>
  <img loading="lazy" decoding="async" width="1055" height="288" src="/wp-content/uploads/2018/05/word-image-2779.png" class="wp-image-3158" srcset="/wp-content/uploads/2018/05/word-image-2779.png 1055w, /wp-content/uploads/2018/05/word-image-2779-300x82.png 300w, /wp-content/uploads/2018/05/word-image-2779-768x210.png 768w, /wp-content/uploads/2018/05/word-image-2779-1024x280.png 1024w" sizes="(max-width: 1055px) 100vw, 1055px" />
</p>
<p>
  ②、根据子节点查父节点
</p>
<p>
  <img loading="lazy" decoding="async" width="1096" height="258" src="/wp-content/uploads/2018/05/word-image-2780.png" class="wp-image-3159" srcset="/wp-content/uploads/2018/05/word-image-2780.png 1096w, /wp-content/uploads/2018/05/word-image-2780-300x71.png 300w, /wp-content/uploads/2018/05/word-image-2780-768x181.png 768w, /wp-content/uploads/2018/05/word-image-2780-1024x241.png 1024w" sizes="(max-width: 1096px) 100vw, 1096px" />
</p>
<p>
  ③、查询兄弟节点
</p>
<p>
  <img loading="lazy" decoding="async" width="1075" height="250" src="/wp-content/uploads/2018/05/word-image-2781.png" class="wp-image-3160" srcset="/wp-content/uploads/2018/05/word-image-2781.png 1075w, /wp-content/uploads/2018/05/word-image-2781-300x70.png 300w, /wp-content/uploads/2018/05/word-image-2781-768x179.png 768w, /wp-content/uploads/2018/05/word-image-2781-1024x238.png 1024w" sizes="(max-width: 1075px) 100vw, 1075px" />
</p>
<p>
  3、遗留DOM
</p>
<p>
  早期DOM访问形式，在一些特定元素的获取上比较方便。被保留下来使用，W3C标准化之后 称为“0级DOM”。
</p>
<p>
  document.body			访问body节点
</p>
<p>
  document.forms		    访问所有的表单		返回集合
</p>
<p>
  document.formName[index].name       访问表单项
</p>
<p>
  document.anchors		    访问所有的锚点		返回集合
</p>
<p>
  document.links		    访问所有的链接		返回集合
</p>
<p>
  document.images		    访问所有的图片		返回集合
</p>
<p>
  document.all			    访问所有的元素
</p>
<p>
  <img loading="lazy" decoding="async" width="1158" height="459" src="/wp-content/uploads/2018/05/word-image-2782.png" class="wp-image-3161" srcset="/wp-content/uploads/2018/05/word-image-2782.png 1158w, /wp-content/uploads/2018/05/word-image-2782-300x119.png 300w, /wp-content/uploads/2018/05/word-image-2782-768x304.png 768w, /wp-content/uploads/2018/05/word-image-2782-1024x406.png 1024w" sizes="(max-width: 1158px) 100vw, 1158px" />
</p>
<p>
  5、元素节点增删改操作
</p>
<p>
  1、增加元素节点/创建节点
</p>
<p>
  方法一：父节点.appendChild(子节点)
</p>
<p>
  <img loading="lazy" decoding="async" width="1079" height="443" src="/wp-content/uploads/2018/05/word-image-2783.png" class="wp-image-3162" srcset="/wp-content/uploads/2018/05/word-image-2783.png 1079w, /wp-content/uploads/2018/05/word-image-2783-300x123.png 300w, /wp-content/uploads/2018/05/word-image-2783-768x315.png 768w, /wp-content/uploads/2018/05/word-image-2783-1024x420.png 1024w" sizes="(max-width: 1079px) 100vw, 1079px" />
</p>
<p>
  方法二：父节点.insertBefore(新节点, 参照的节点);
</p>
<p>
  <img loading="lazy" decoding="async" width="1063" height="423" src="/wp-content/uploads/2018/05/word-image-2784.png" class="wp-image-3163" srcset="/wp-content/uploads/2018/05/word-image-2784.png 1063w, /wp-content/uploads/2018/05/word-image-2784-300x119.png 300w, /wp-content/uploads/2018/05/word-image-2784-768x306.png 768w, /wp-content/uploads/2018/05/word-image-2784-1024x407.png 1024w" sizes="(max-width: 1063px) 100vw, 1063px" />
</p>
<p>
  2、修改节点
</p>
<p>
  方法：父节点.replaceChild(新节点, 待替换的节点);
</p>
<p>
  <img loading="lazy" decoding="async" width="1046" height="419" src="/wp-content/uploads/2018/05/word-image-2785.png" class="wp-image-3164" srcset="/wp-content/uploads/2018/05/word-image-2785.png 1046w, /wp-content/uploads/2018/05/word-image-2785-300x120.png 300w, /wp-content/uploads/2018/05/word-image-2785-768x308.png 768w, /wp-content/uploads/2018/05/word-image-2785-1024x410.png 1024w" sizes="(max-width: 1046px) 100vw, 1046px" />
</p>
<p>
  3、删除节点
</p>
<p>
  方法：父节点.removeChild(子节点);
</p>
<p>
  <img loading="lazy" decoding="async" width="944" height="312" src="/wp-content/uploads/2018/05/word-image-2786.png" class="wp-image-3165" srcset="/wp-content/uploads/2018/05/word-image-2786.png 944w, /wp-content/uploads/2018/05/word-image-2786-300x99.png 300w, /wp-content/uploads/2018/05/word-image-2786-768x254.png 768w" sizes="(max-width: 944px) 100vw, 944px" />
</p>
<p>
  6、属性节点操作
</p>
<p>
  1、获取元素的属性
</p>
<p>
  elementNode.attributes         获取元素的所有属性
</p>
<p>
  elementNode.getAttribute()		读取一个属性值
</p>
<p>
  elementNode.属性名          获取元素的属性
</p>
<p>
  <img loading="lazy" decoding="async" width="1098" height="432" src="/wp-content/uploads/2018/05/word-image-2787.png" class="wp-image-3166" srcset="/wp-content/uploads/2018/05/word-image-2787.png 1098w, /wp-content/uploads/2018/05/word-image-2787-300x118.png 300w, /wp-content/uploads/2018/05/word-image-2787-768x302.png 768w, /wp-content/uploads/2018/05/word-image-2787-1024x403.png 1024w" sizes="(max-width: 1098px) 100vw, 1098px" />
</p>
<p>
  2、添加/修改元素的属性
</p>
<p>
  elementNode.setAttribute()		设置（修改/添加）一个属性值
</p>
<p>
  elementNode.属性名 = 值     设置元素的属性
</p>
<p>
  <img loading="lazy" decoding="async" width="932" height="237" src="/wp-content/uploads/2018/05/word-image-2788.png" class="wp-image-3167" srcset="/wp-content/uploads/2018/05/word-image-2788.png 932w, /wp-content/uploads/2018/05/word-image-2788-300x76.png 300w, /wp-content/uploads/2018/05/word-image-2788-768x195.png 768w" sizes="(max-width: 932px) 100vw, 932px" />
</p>
<p>
  3、删除元素的属性
</p>
<p>
  elementNode.removeAttribute()	删除一个属性
</p>
<p>
  4、判断元素是否有哪个属性
</p>
<p>
  elementNode.hasAttribute()		检测是否有某个属性，有返回true，没有返回false
</p>
<p>
  <img loading="lazy" decoding="async" width="959" height="224" src="/wp-content/uploads/2018/05/word-image-2789.png" class="wp-image-3168" srcset="/wp-content/uploads/2018/05/word-image-2789.png 959w, /wp-content/uploads/2018/05/word-image-2789-300x70.png 300w, /wp-content/uploads/2018/05/word-image-2789-768x179.png 768w" sizes="(max-width: 959px) 100vw, 959px" />
</p>
<p>
  5、案例&#8212;全选，反选，取消
</p>
<p>
  代码见19全选反选取消.html
</p>
<p>
  7、操作css样式
</p>
<p>
  1、设置css样式：
</p>
<p>
  语法： node<strong>.</strong>style<strong>.</strong>css样式 = 值
</p>
<p>
  不带中横线的css：node.style.样式 = 值。比如有color，border，width
</p>
<p>
  带中横线的，样式要去掉中横线，后面的首字母大写，backgroundColor、fontSize、lineHeight
</p>
<p>
  <img loading="lazy" decoding="async" width="705" height="465" src="/wp-content/uploads/2018/05/word-image-2790.png" class="wp-image-3169" srcset="/wp-content/uploads/2018/05/word-image-2790.png 705w, /wp-content/uploads/2018/05/word-image-2790-300x198.png 300w" sizes="(max-width: 705px) 100vw, 705px" />
</p>
<p>
  2、获取css样式
</p>
<p>
  使用node.style.样式的方式只能获取行内样式和js已经设置过的样式。
</p>
<p>
  在IE8及更低版本浏览器中支持node.currentStyle.样式
</p>
<p>
  高版本浏览器支持getComputedStyle(node).样式
</p>
<p>
  <img loading="lazy" decoding="async" width="967" height="177" src="/wp-content/uploads/2018/05/word-image-2791.png" class="wp-image-3170" srcset="/wp-content/uploads/2018/05/word-image-2791.png 967w, /wp-content/uploads/2018/05/word-image-2791-300x55.png 300w, /wp-content/uploads/2018/05/word-image-2791-768x141.png 768w" sizes="(max-width: 967px) 100vw, 967px" />
</p>
<p>
  兼容的性的写法：
</p>
<p>
  <img loading="lazy" decoding="async" width="806" height="228" src="/wp-content/uploads/2018/05/word-image-2792.png" class="wp-image-3171" srcset="/wp-content/uploads/2018/05/word-image-2792.png 806w, /wp-content/uploads/2018/05/word-image-2792-300x85.png 300w, /wp-content/uploads/2018/05/word-image-2792-768x217.png 768w" sizes="(max-width: 806px) 100vw, 806px" />
</p>
<p>
  8、DOM属性
</p>
<p>
  DOM有四个属性，分别是：
</p>
<p><strong>innerHTML</strong>
</p>
<p>
  	获取/设置元素里的html内容
</p>
<p>
  <img loading="lazy" decoding="async" width="1275" height="264" src="/wp-content/uploads/2018/05/word-image-2793.png" class="wp-image-3172" srcset="/wp-content/uploads/2018/05/word-image-2793.png 1275w, /wp-content/uploads/2018/05/word-image-2793-300x62.png 300w, /wp-content/uploads/2018/05/word-image-2793-768x159.png 768w, /wp-content/uploads/2018/05/word-image-2793-1024x212.png 1024w" sizes="(max-width: 1275px) 100vw, 1275px" />
</p>
<p><strong>nodeName</strong>
</p>
<p>
  	nodeName 是只读的
</p>
<p>
  元素节点的 nodeName 与标签名相同
</p>
<p>
  属性节点的 nodeName 与属性名相同
</p>
<p>
  文本节点的 nodeName 始终是 #text
</p>
<p>
  文档节点的 nodeName 始终是 #document
</p>
<p><strong>nodeValue</strong>
</p>
<p>
  	元素节点的 nodeValue 是 undefined 或 null
</p>
<p>
  文本节点的 nodeValue 是文本本身
</p>
<p>
  属性节点的 nodeValue 是属性值
</p>
<p>
  <img loading="lazy" decoding="async" width="847" height="152" src="/wp-content/uploads/2018/05/word-image-2794.png" class="wp-image-3173" srcset="/wp-content/uploads/2018/05/word-image-2794.png 847w, /wp-content/uploads/2018/05/word-image-2794-300x54.png 300w, /wp-content/uploads/2018/05/word-image-2794-768x138.png 768w" sizes="(max-width: 847px) 100vw, 847px" />
</p>
<p><strong>nodeType</strong>
</p>
<p>
  表示节点的类型
</p>
<p>
  	元素 1
</p>
<p>
  属性 2
</p>
<p>
  文本 3
</p>
<p>
  注释 8
</p>
<p>
  文档 9
</p>
<p>
  <img loading="lazy" decoding="async" width="1211" height="400" src="/wp-content/uploads/2018/05/word-image-2795.png" class="wp-image-3174" srcset="/wp-content/uploads/2018/05/word-image-2795.png 1211w, /wp-content/uploads/2018/05/word-image-2795-300x99.png 300w, /wp-content/uploads/2018/05/word-image-2795-768x254.png 768w, /wp-content/uploads/2018/05/word-image-2795-1024x338.png 1024w" sizes="(max-width: 1211px) 100vw, 1211px" />
</p>
<p>
  案例：完成兼容性的查找子节点的方法，及查找上一个兄弟的方法，及查找下一个兄弟的方法
</p>
<p>
  获取子元素的兼容性写法：
</p>
<p>
  <img loading="lazy" decoding="async" width="738" height="502" src="/wp-content/uploads/2018/05/word-image-2796.png" class="wp-image-3175" srcset="/wp-content/uploads/2018/05/word-image-2796.png 738w, /wp-content/uploads/2018/05/word-image-2796-300x204.png 300w, /wp-content/uploads/2018/05/word-image-2796-220x150.png 220w" sizes="(max-width: 738px) 100vw, 738px" />
</p>
<p>
  获取上一个兄弟的兼容性写法：
</p>
<p>
  <img loading="lazy" decoding="async" width="716" height="380" src="/wp-content/uploads/2018/05/word-image-2797.png" class="wp-image-3176" srcset="/wp-content/uploads/2018/05/word-image-2797.png 716w, /wp-content/uploads/2018/05/word-image-2797-300x159.png 300w" sizes="(max-width: 716px) 100vw, 716px" />
</p>
<p>
  获取下一个兄弟的兼容性写法：
</p>
<p>
  <img loading="lazy" decoding="async" width="757" height="353" src="/wp-content/uploads/2018/05/word-image-2798.png" class="wp-image-3177" srcset="/wp-content/uploads/2018/05/word-image-2798.png 757w, /wp-content/uploads/2018/05/word-image-2798-300x140.png 300w" sizes="(max-width: 757px) 100vw, 757px" />
</p>
<p>
  9、获取元素的位置
</p>
<p>
  offsetLeft	  元素在网页中水平坐标值	ele.offsetLeft
</p>
<p>
  offsetTop	  元素在网页中垂直坐标值	ele.offsetTop
</p>
<p>
  offsetWidth	元素在页面中占据的宽度	ele.offsetWidth
</p>
<p>
  offsetHeight	元素在页面中占据的高度	ele. offsetHeight
</p>
<p>
  HTML+css：
</p>
<p>
  <img loading="lazy" decoding="async" width="639" height="424" src="/wp-content/uploads/2018/05/word-image-2799.png" class="wp-image-3178" srcset="/wp-content/uploads/2018/05/word-image-2799.png 639w, /wp-content/uploads/2018/05/word-image-2799-300x199.png 300w" sizes="(max-width: 639px) 100vw, 639px" />
</p>
<p>
  js及输出结果：
</p>
<p>
  <img loading="lazy" decoding="async" width="1256" height="251" src="/wp-content/uploads/2018/05/word-image-2800.png" class="wp-image-3179" srcset="/wp-content/uploads/2018/05/word-image-2800.png 1256w, /wp-content/uploads/2018/05/word-image-2800-300x60.png 300w, /wp-content/uploads/2018/05/word-image-2800-768x153.png 768w, /wp-content/uploads/2018/05/word-image-2800-1024x205.png 1024w" sizes="(max-width: 1256px) 100vw, 1256px" />
</p>
<p>
  scrollLeft	  滚动条在容器中水平滚动的距离	ele.scrollLeft
</p>
<p>
  scrollTop	  滚动条在容器中垂直滚动的距离	ele.scrollTop
</p>
<p>
  测试的时候，先将页面设置的大一点，能看到滚动条：
</p>
<p>
  <img loading="lazy" decoding="async" width="566" height="31" src="/wp-content/uploads/2018/05/word-image-2801.png" class="wp-image-3180" srcset="/wp-content/uploads/2018/05/word-image-2801.png 566w, /wp-content/uploads/2018/05/word-image-2801-300x16.png 300w" sizes="(max-width: 566px) 100vw, 566px" />
</p>
<p>
  当滚动条滚动的时候，输出滚动的距离：
</p>
<p>
  <img loading="lazy" decoding="async" width="858" height="132" src="/wp-content/uploads/2018/05/word-image-2802.png" class="wp-image-3181" srcset="/wp-content/uploads/2018/05/word-image-2802.png 858w, /wp-content/uploads/2018/05/word-image-2802-300x46.png 300w, /wp-content/uploads/2018/05/word-image-2802-768x118.png 768w" sizes="(max-width: 858px) 100vw, 858px" /></p>
]]></content:encoded>
					
					<wfw:commentRss>/%e5%89%8d%e7%ab%af%e6%8a%80%e6%9c%af/3136.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>JS初级（五）BOM、 DOM、 定时器、 对象、 时钟周期</title>
		<link>/%e5%89%8d%e7%ab%af%e6%8a%80%e6%9c%af/440.html</link>
					<comments>/%e5%89%8d%e7%ab%af%e6%8a%80%e6%9c%af/440.html#respond</comments>
		
		<dc:creator><![CDATA[Mr.Lee]]></dc:creator>
		<pubDate>Thu, 17 May 2018 14:12:06 +0000</pubDate>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[前端技术]]></category>
		<category><![CDATA[BOM]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[定时器]]></category>
		<category><![CDATA[对象]]></category>
		<category><![CDATA[时钟周期]]></category>
		<guid isPermaLink="false">/?p=440</guid>

					<description><![CDATA[回顾 函数预加载：在页面编译的时候就将函数编译到内存中，就可以先调用，再定义。 通过arguments关键字可 [&#8230;]]]></description>
										<content:encoded><![CDATA[</p>
<h2>回顾</h2>
<ol>
<li>
  函数预加载：在页面编译的时候就将函数编译到内存中，就可以先调用，再定义。
</li>
<li>
  通过arguments关键字可以实现传递的参数个数不一样
</li>
<li>
  事件：以on开头的都是事件
</li>
<li>
  事件后面肯定有事件处理程序，事件处理程序一般都是函数
</li>
<li>
  函数调用</p>
<ol>
<li>
    方法一：&lt;标签 事件=’函数()’&gt;
  </li>
<li>
    方法二：对象.事件=函数
  </li>
</ol>
</li>
<li>
  匿名函数：没有名字的函数
</li>
<li>
  匿名函数自调用   (匿名函数)();
</li>
<li>
  return</p>
<ol>
<li>
    作用一：终止函数的执行
  </li>
<li>
    作用二：从函数内部将值返回到调用处
  </li>
</ol>
</li>
<li>
  变量的作用域</p>
<ol>
<li>
    全局变量：供整个页面使用
  </li>
<li>
    局部变量：在函数内部使用变量，注意在函数内部通过var声明的变量是局部变量，不通过var声明的是全局变量。
  </li>
</ol>
</li>
<li>
  Js嵌入到页面的方法</p>
<ol>
<li>
    方法一：直接写在事件处理程序中 &lt;p onclick=’alert(‘锄禾日当午’)’&gt;
  </li>
<li>
    方法二：通过&lt;script&gt;开头，&lt;/script&gt;结束嵌套在页面的内部
  </li>
<li>
    方法三：写在页面的外部，通过&lt;script&gt;标记引入到页面内部
  </li>
</ol>
</li>
<li>
  特殊含义的字符</p>
<ol>
<li>
    \r：回车
  </li>
<li>
    \n：换行
  </li>
<li>
    \t：制表位
  </li>
</ol>
</li>
<li>
  转义字符：\  将具有特殊含义的字符转成普通字符
</li>
<li>
  对象：由属性（变量）和方法（函数）组成的组合。</p>
<ol>
<li>
    对象.属性
  </li>
<li>
    对象.方法()
  </li>
</ol>
</li>
</ol>
<h2>对象的分类</h2>
<ol>
<li>
  HTML：就是HTML元素
</li>
<li>
  脚本对象
</li>
<li>
  浏览器对象
</li>
</ol>
<h2>脚本对象</h2>
<h3>Array（数组）</h3>
<p>
  数组也属于对象
</p>
<p><img loading="lazy" decoding="async" width="612" height="52" src="/wp-content/uploads/2018/05/word-image-401.png" class="wp-image-442" srcset="/wp-content/uploads/2018/05/word-image-401.png 612w, /wp-content/uploads/2018/05/word-image-401-300x25.png 300w" sizes="(max-width: 612px) 100vw, 612px" /></p>
<p>
  常用的一些方法与属性
</p>
<p>
  &lt;script type=&#8221;text/javascript&#8221;&gt;
</p>
<p>
  var stu=new Array(&#8216;tom&#8217;,&#8217;berry&#8217;,&#8217;ketty&#8217;);
</p>
<p>
  document.write(&#8216;排序后:&#8217;+stu.sort()+'&lt;br&gt;&#8217;);		//排序
</p>
<p>
  document.write(&#8216;翻转后:&#8217;+stu.reverse()+'&lt;br&gt;&#8217;);		//反转
</p>
<p>
  document.write(&#8216;连接后：&#8217;+stu.join(&#8216;&gt;&gt;&gt;&#8217;)+'&lt;br&gt;&#8217;)	//将数组元素连接起来
</p>
<p>
  document.write(&#8216;数组长度：&#8217;+stu.length+'&lt;br&gt;&#8217;);		//数组的长度
</p>
<p>
  stu.unshift(&#8216;李白&#8217;);//在数组的前面插入
</p>
<p>
  document.write(&#8216;unshift：&#8217;+stu+'&lt;br&gt;&#8217;);
</p>
<p>
  stu.shift();		//将数组的第一个元素删除
</p>
<p>
  document.write(&#8216;shift：&#8217;+stu+'&lt;br&gt;&#8217;);
</p>
<p>
  stu.push(&#8216;杜甫&#8217;);	//将元素插入到数组的后面
</p>
<p>
  document.write(&#8216;push：&#8217;+stu+'&lt;br&gt;&#8217;);
</p>
<p>
  stu.pop();			//删除数组的最后一个元素
</p>
<p>
  document.write(stu);
</p>
<p>
  &lt;/script&gt;
</p>
<h3>String（字符串）</h3>
<p>
  字符串的声明
</p>
<p>
  方法一：把字符串当成基本类型直接赋值
</p>
<p><img loading="lazy" decoding="async" width="176" height="24" src="/wp-content/uploads/2018/05/word-image-402.png" class="wp-image-443" /></p>
<p>
  方法二：把字符串当成对象来声明
</p>
<p><img loading="lazy" decoding="async" width="804" height="29" src="/wp-content/uploads/2018/05/word-image-403.png" class="wp-image-444" srcset="/wp-content/uploads/2018/05/word-image-403.png 804w, /wp-content/uploads/2018/05/word-image-403-300x11.png 300w, /wp-content/uploads/2018/05/word-image-403-768x28.png 768w" sizes="(max-width: 804px) 100vw, 804px" /></p>
<p>
  字符串是基本类型，在字符串运行的时候会在内存中生成一个临时对象，通过临时对象调用属性和方法
</p>
<ol>
<li>
  截取子字符串   语法： 字符串.substr(开始位置,[截取长度])
</li>
</ol>
<p><img loading="lazy" decoding="async" width="869" height="140" src="/wp-content/uploads/2018/05/word-image-404.png" class="wp-image-445" srcset="/wp-content/uploads/2018/05/word-image-404.png 869w, /wp-content/uploads/2018/05/word-image-404-300x48.png 300w, /wp-content/uploads/2018/05/word-image-404-768x124.png 768w" sizes="(max-width: 869px) 100vw, 869px" /></p>
<ol>
<li>
  截取子字符串   语法：字符串.substring(起始位置，结束位置)
</li>
</ol>
<p><img loading="lazy" decoding="async" width="752" height="107" src="/wp-content/uploads/2018/05/word-image-405.png" class="wp-image-446" srcset="/wp-content/uploads/2018/05/word-image-405.png 752w, /wp-content/uploads/2018/05/word-image-405-300x43.png 300w" sizes="(max-width: 752px) 100vw, 752px" /></p>
<p>
  例题
</p>
<p><img loading="lazy" decoding="async" width="615" height="97" src="/wp-content/uploads/2018/05/word-image-406.png" class="wp-image-447" srcset="/wp-content/uploads/2018/05/word-image-406.png 615w, /wp-content/uploads/2018/05/word-image-406-300x47.png 300w" sizes="(max-width: 615px) 100vw, 615px" /></p>
<ol>
<li>
  indexOf()：返回 <strong>String</strong> 对象内第一次出现子字符串的字符位置
</li>
<li>
  lastIndexOf（）：返回字符串最后出现的位置
</li>
</ol>
<p><img loading="lazy" decoding="async" width="866" height="94" src="/wp-content/uploads/2018/05/word-image-407.png" class="wp-image-448" srcset="/wp-content/uploads/2018/05/word-image-407.png 866w, /wp-content/uploads/2018/05/word-image-407-300x33.png 300w, /wp-content/uploads/2018/05/word-image-407-768x83.png 768w" sizes="(max-width: 866px) 100vw, 866px" /></p>
<ol>
<li>
  toLowerCase()：转成小写
</li>
<li>
  toUpperCase()：转成大写
</li>
</ol>
<p><img loading="lazy" decoding="async" width="665" height="70" src="/wp-content/uploads/2018/05/word-image-408.png" class="wp-image-449" srcset="/wp-content/uploads/2018/05/word-image-408.png 665w, /wp-content/uploads/2018/05/word-image-408-300x32.png 300w" sizes="(max-width: 665px) 100vw, 665px" /></p>
<ol>
<li>
  字符串长度
</li>
</ol>
<p><img loading="lazy" decoding="async" width="579" height="22" src="/wp-content/uploads/2018/05/word-image-409.png" class="wp-image-450" srcset="/wp-content/uploads/2018/05/word-image-409.png 579w, /wp-content/uploads/2018/05/word-image-409-300x11.png 300w" sizes="(max-width: 579px) 100vw, 579px" /></p>
<p>
  多学一招：字符串可以当成字符数组来使用
</p>
<p><img loading="lazy" decoding="async" width="489" height="75" src="/wp-content/uploads/2018/05/word-image-410.png" class="wp-image-451" srcset="/wp-content/uploads/2018/05/word-image-410.png 489w, /wp-content/uploads/2018/05/word-image-410-300x46.png 300w" sizes="(max-width: 489px) 100vw, 489px" /></p>
<h3>Math（数学）</h3>
<p><img loading="lazy" decoding="async" width="943" height="277" src="/wp-content/uploads/2018/05/word-image-411.png" class="wp-image-452" srcset="/wp-content/uploads/2018/05/word-image-411.png 943w, /wp-content/uploads/2018/05/word-image-411-300x88.png 300w, /wp-content/uploads/2018/05/word-image-411-768x226.png 768w" sizes="(max-width: 943px) 100vw, 943px" /></p>
<p>
  例题：产生一个1~100的随机整数
</p>
<p><img loading="lazy" decoding="async" width="763" height="263" src="/wp-content/uploads/2018/05/word-image-412.png" class="wp-image-453" srcset="/wp-content/uploads/2018/05/word-image-412.png 763w, /wp-content/uploads/2018/05/word-image-412-300x103.png 300w" sizes="(max-width: 763px) 100vw, 763px" /></p>
<h3>Date（日期）</h3>
<p><img loading="lazy" decoding="async" width="598" height="128" src="/wp-content/uploads/2018/05/word-image-413.png" class="wp-image-454" srcset="/wp-content/uploads/2018/05/word-image-413.png 598w, /wp-content/uploads/2018/05/word-image-413-300x64.png 300w" sizes="(max-width: 598px) 100vw, 598px" /></p>
<p>
  Date()对象的方法有很多，我们可以把它分为3组
</p>
<p>
  第一组：setXXX：设置时间
</p>
<p>
  第二组：getXXX：获取时间
</p>
<p>
  第三组：toXXX：转化时间格式
</p>
<p>
  例题：获取当前时间
</p>
<p><img loading="lazy" decoding="async" width="854" height="260" src="/wp-content/uploads/2018/05/word-image-414.png" class="wp-image-455" srcset="/wp-content/uploads/2018/05/word-image-414.png 854w, /wp-content/uploads/2018/05/word-image-414-300x91.png 300w, /wp-content/uploads/2018/05/word-image-414-768x234.png 768w" sizes="(max-width: 854px) 100vw, 854px" /><br />
<img loading="lazy" decoding="async" width="1031" height="28" src="/wp-content/uploads/2018/05/word-image-415.png" class="wp-image-456" srcset="/wp-content/uploads/2018/05/word-image-415.png 1031w, /wp-content/uploads/2018/05/word-image-415-300x8.png 300w, /wp-content/uploads/2018/05/word-image-415-768x21.png 768w, /wp-content/uploads/2018/05/word-image-415-1024x28.png 1024w" sizes="(max-width: 1031px) 100vw, 1031px" /></p>
<p>
  例题：转换时间格式
</p>
<p><img loading="lazy" decoding="async" width="949" height="93" src="/wp-content/uploads/2018/05/word-image-416.png" class="wp-image-457" srcset="/wp-content/uploads/2018/05/word-image-416.png 949w, /wp-content/uploads/2018/05/word-image-416-300x29.png 300w, /wp-content/uploads/2018/05/word-image-416-768x75.png 768w" sizes="(max-width: 949px) 100vw, 949px" /><br />
<img loading="lazy" decoding="async" width="199" height="56" src="/wp-content/uploads/2018/05/word-image-417.png" class="wp-image-458" /></p>
<p>
  例题：上月的1号是星期几？
</p>
<p><img loading="lazy" decoding="async" width="941" height="165" src="/wp-content/uploads/2018/05/word-image-418.png" class="wp-image-459" srcset="/wp-content/uploads/2018/05/word-image-418.png 941w, /wp-content/uploads/2018/05/word-image-418-300x53.png 300w, /wp-content/uploads/2018/05/word-image-418-768x135.png 768w" sizes="(max-width: 941px) 100vw, 941px" /></p>
<h2>浏览器对象</h2>
<p><img loading="lazy" decoding="async" width="508" height="194" src="/wp-content/uploads/2018/05/word-image-419.png" class="wp-image-460" srcset="/wp-content/uploads/2018/05/word-image-419.png 508w, /wp-content/uploads/2018/05/word-image-419-300x115.png 300w" sizes="(max-width: 508px) 100vw, 508px" /></p>
<h3>浏览器的分层结构</h3>
<p><img loading="lazy" decoding="async" width="491" height="257" src="/wp-content/uploads/2018/05/word-image-420.png" class="wp-image-461" srcset="/wp-content/uploads/2018/05/word-image-420.png 491w, /wp-content/uploads/2018/05/word-image-420-300x157.png 300w" sizes="(max-width: 491px) 100vw, 491px" /></p>
<h3>window（窗口）</h3>
<p>
  在浏览器对象中最顶层的对象。
</p>
<p><img loading="lazy" decoding="async" width="482" height="135" src="/wp-content/uploads/2018/05/word-image-421.png" class="wp-image-462" srcset="/wp-content/uploads/2018/05/word-image-421.png 482w, /wp-content/uploads/2018/05/word-image-421-300x84.png 300w" sizes="(max-width: 482px) 100vw, 482px" /></p>
<p>
  脚下留心：由于window是最顶层对象，所以window可以省略。
</p>
<h3>document（文档）【重点】</h3>
<ol>
<li>
  window.document.write(‘’)；将字符串输出到浏览器上
</li>
<li>
  document.bgColor=&#8217;#cccccc&#8217;;	//背景色
</li>
<li>
  document.fgColor=&#8217;#FF0000&#8242;;	//前景色
</li>
<li>
  获取网页标签对象（重点）
</li>
</ol>
<p><img loading="lazy" decoding="async" width="951" height="321" src="/wp-content/uploads/2018/05/word-image-422.png" class="wp-image-463" srcset="/wp-content/uploads/2018/05/word-image-422.png 951w, /wp-content/uploads/2018/05/word-image-422-300x101.png 300w, /wp-content/uploads/2018/05/word-image-422-768x259.png 768w" sizes="(max-width: 951px) 100vw, 951px" /></p>
<p>
  例题：标签属性进行取值赋值
</p>
<p>
  &lt;input type=&#8221;text&#8221; id=&#8221;txt&#8221;&gt;
</p>
<p>
  &lt;script type=&#8221;text/javascript&#8221;&gt;
</p>
<p>
  window.onload=function(){
</p>
<p>
  	var oTxt=document.getElementById(&#8216;txt&#8217;);
</p>
<p>
  	oTxt.onblur=function(){
</p>
<p>
  		//alert(oTxt.value);
</p>
<p>
  		//alert(oTxt.type);		//text
</p>
<p>
  		oTxt.type=&#8217;button&#8217;;		//给属性赋值
</p>
<p>
  		oTxt.value=&#8217;确定&#8217;;		//给属性赋值
</p>
<p>
  	}
</p>
<p>
  }
</p>
<p>
  &lt;/script&gt;
</p>
<p>
  结果：当文本框失去焦点的时候变成按钮
</p>
<h3>history（历史）</h3>
<p>
  back ( ) 方法相当于后退按钮
</p>
<p>
  forward ( ) 方法相当于前进按钮
</p>
<p>
  go (1)代表前进1页，等价于forward( )方法；
</p>
<p>
  go(-1) 代表后退1页，等价于back( )方法；
</p>
<p>
  第一页
</p>
<p>
  当前是第一页
</p>
<p>
  &lt;a href=&#8221;11-history2.html&#8221;&gt;跳转到第二页&lt;/a&gt;
</p>
<p>
  第二页
</p>
<p>
  &lt;script type=&#8221;text/javascript&#8221;&gt;
</p>
<p>
  function myforward(){
</p>
<p>
  	//history.forward();	//前进一级  等价于
</p>
<p>
  	history.go(1);
</p>
<p>
  }
</p>
<p>
  &lt;/script&gt;
</p>
<p>
  当前是第二页
</p>
<p>
  &lt;a href=&#8221;11-history3.html&#8221;&gt;跳转到第三页&lt;/a&gt;
</p>
<p>
  &lt;input type=&#8221;button&#8221; value=&#8221;前进一级&#8221; onclick=&#8217;myforward()&#8217;&gt;
</p>
<p>
  第三页
</p>
<p>
  &lt;script type=&#8221;text/javascript&#8221;&gt;
</p>
<p>
  function myback(){
</p>
<p>
  	//history.back();	//返回上一级，等价于下一句
</p>
<p>
  	history.go(-1);
</p>
<p>
  }
</p>
<p>
  &lt;/script&gt;
</p>
<p>
  这是第三页&lt;br&gt;
</p>
<p>
  &lt;input type=&#8221;button&#8221; value=&#8221;返回一级&#8221; onclick=&#8217;myback()&#8217;&gt;&lt;br&gt;
</p>
<p>
  &lt;input type=&#8221;button&#8221; value=&#8221;返回两级&#8221; onclick=&#8217;history.go(-2)&#8217;&gt;
</p>
<h3>location（地址）</h3>
<p>
  location对象主要用来做页面的跳转
</p>
<p>
  属性：href——设置或检索完整的 URL 字符串
</p>
<p>
  方法：
</p>
<p>
  assign(&#8220;url&#8221;)：跳转到指定页面
</p>
<p>
  reload()：重新加载当前页面
</p>
<p>
  replace(&#8220;url&#8221;) ：通过加载 URL 指定的文档来替换当前文档
</p>
<p>
  例题：
</p>
<p>
  &lt;script type=&#8221;text/javascript&#8221;&gt;
</p>
<p>
  function jump1(){
</p>
<p>
  	//通过更改location的属性来跳转
</p>
<p>
  	alert(location.href);	//当前的url地址
</p>
<p>
  	location.href=&#8217;4-生成1~100的随机整数.html&#8217;;
</p>
<p>
  }
</p>
<p>
  function jump2(){
</p>
<p>
  	//通过方法来跳转
</p>
<p>
  	location.assign(&#8216;4-生成1~100的随机整数.html&#8217;);
</p>
<p>
  }
</p>
<p>
  function jump3(){
</p>
<p>
  	//将其他页面加载到当前窗口上来，reload()是用来做刷新的
</p>
<p>
  	//location.reload(&#8216;4-生成1~100的随机整数.html&#8217;);
</p>
<p>
  	location.reload();	//刷新本页面
</p>
<p>
  }
</p>
<p>
  function jump4(){
</p>
<p>
  	//跳转完毕后不能点击&#8221;后退&#8221;按钮
</p>
<p>
  	location.replace(&#8216;4-生成1~100的随机整数.html&#8217;);
</p>
<p>
  }
</p>
<p>
  &lt;/script&gt;
</p>
<p>
  &lt;input type=&#8221;button&#8221; value=&#8221;href属性跳转&#8221; onclick=&#8217;jump1()&#8217;&gt; &lt;br&gt;
</p>
<p>
  &lt;input type=&#8221;button&#8221; value=&#8221;assign()跳转&#8221; onclick=&#8217;jump2()&#8217;&gt; &lt;br&gt;
</p>
<p>
  &lt;input type=&#8221;button&#8221; value=&#8221;reload()【刷新】&#8221; onclick=&#8217;jump3()&#8217;&gt; &lt;br&gt;
</p>
<p>
  &lt;input type=&#8221;button&#8221; value=&#8221;replace()&#8221; onclick=&#8217;jump4()&#8217;&gt;
</p>
<p><img loading="lazy" decoding="async" width="450" height="95" src="/wp-content/uploads/2018/05/word-image-423.png" class="wp-image-464" srcset="/wp-content/uploads/2018/05/word-image-423.png 450w, /wp-content/uploads/2018/05/word-image-423-300x63.png 300w" sizes="(max-width: 450px) 100vw, 450px" /></p>
<h3>screen（屏幕）【了解】</h3>
<p>
  包含有关客户端显示屏幕的信息
</p>
<p>
  注意：没有应用于 screen 对象的公开标准，不过所有浏览器都支持该对象。
</p>
<p>
  width：返回显示器屏幕的宽度。
</p>
<p>
  height：返回显示屏幕的高度。
</p>
<p>
  availWidth：返回显示屏幕的宽度 (除 Windows 任务栏之外)。
</p>
<p>
  availHeight：返回显示屏幕的高度 (除 Windows 任务栏之外)。
</p>
<p><img loading="lazy" decoding="async" width="749" height="421" src="/wp-content/uploads/2018/05/word-image-424.png" class="wp-image-465" srcset="/wp-content/uploads/2018/05/word-image-424.png 749w, /wp-content/uploads/2018/05/word-image-424-300x169.png 300w" sizes="(max-width: 749px) 100vw, 749px" /></p>
<p>
  例题
</p>
<p>
  &lt;script type=&#8221;text/javascript&#8221;&gt;
</p>
<p>
  document.write(&#8216;屏幕宽度：&#8217;+screen.width+'&lt;br&gt;&#8217;);
</p>
<p>
  document.write(&#8216;屏幕高度：&#8217;+screen.height+'&lt;br&gt;&#8217;);
</p>
<p>
  document.write(&#8216;屏幕宽度(不包含任务栏)：&#8217;+screen.availWidth+'&lt;br&gt;&#8217;);
</p>
<p>
  document.write(&#8216;屏幕高度(不包含任务栏)：&#8217;+screen.availHeight+'&lt;br&gt;&#8217;);
</p>
<p>
  &lt;/script&gt;
</p>
<p>
  脚下留心：screen对象的属性都是只读属性
</p>
<h3>navigator（导航）【了解】</h3>
<p>
  navigator 对象包含有关浏览器的信息。
</p>
<p>
  注意：没有应用于 navigator 对象的公开标准，不过所有浏览器都支持该对象。
</p>
<p>
  appCodeName：返回浏览器的代码名。
</p>
<p>
  在所有以 Netscape 代码为基础的浏览器中，它的值是 &#8220;Mozilla&#8221;。为了兼容起见，在 Microsoft 的浏览器中，它的值也是 &#8220;Mozilla&#8221;。
</p>
<p>
  appName：返回浏览器的名称。
</p>
<p>
  appVersion：返回浏览器的平台和版本信息。
</p>
<p><img loading="lazy" decoding="async" width="1046" height="114" src="/wp-content/uploads/2018/05/word-image-425.png" class="wp-image-466" srcset="/wp-content/uploads/2018/05/word-image-425.png 1046w, /wp-content/uploads/2018/05/word-image-425-300x33.png 300w, /wp-content/uploads/2018/05/word-image-425-768x84.png 768w, /wp-content/uploads/2018/05/word-image-425-1024x112.png 1024w" sizes="(max-width: 1046px) 100vw, 1046px" /></p>
<h2>对象操作语句</h2>
<h3>this语句</h3>
<p>
  this表示当前对象
</p>
<p><img loading="lazy" decoding="async" width="905" height="168" src="/wp-content/uploads/2018/05/word-image-426.png" class="wp-image-467" srcset="/wp-content/uploads/2018/05/word-image-426.png 905w, /wp-content/uploads/2018/05/word-image-426-300x56.png 300w, /wp-content/uploads/2018/05/word-image-426-768x143.png 768w" sizes="(max-width: 905px) 100vw, 905px" /></p>
<h3>with语句</h3>
<p>
  with用来执行一组方法和属性，所有的属性和方法都属于with后面的对象
</p>
<p>
  &lt;script type=&#8221;text/javascript&#8221;&gt;
</p>
<p>
  with(document){
</p>
<p>
  	write(&#8216;锄禾日当午&lt;br&gt;&#8217;);
</p>
<p>
  	write(&#8216;汗滴禾下土&lt;hr&gt;&#8217;);
</p>
<p>
  	bgColor=&#8217;#cccccc&#8217;;
</p>
<p>
  	fgColor=&#8217;#FF0000&#8242;;
</p>
<p>
  }
</p>
<p>
  with(Math){
</p>
<p>
  	document.write(PI+'&lt;br&gt;&#8217;);
</p>
<p>
  	document.write(abs(-10)+'&lt;br&gt;&#8217;);
</p>
<p>
  }
</p>
<p>
  &lt;/script&gt;
</p>
<p><img loading="lazy" decoding="async" width="246" height="100" src="/wp-content/uploads/2018/05/word-image-427.png" class="wp-image-468" /></p>
<h3>eval语句</h3>
<p>
  用来执行字符串表达式
</p>
<p><img loading="lazy" decoding="async" width="976" height="50" src="/wp-content/uploads/2018/05/word-image-428.png" class="wp-image-469" srcset="/wp-content/uploads/2018/05/word-image-428.png 976w, /wp-content/uploads/2018/05/word-image-428-300x15.png 300w, /wp-content/uploads/2018/05/word-image-428-768x39.png 768w" sizes="(max-width: 976px) 100vw, 976px" /></p>
<h2>DOM和BOM</h2>
<p>
  DOM：document object model 文档对象模型
</p>
<p><img loading="lazy" decoding="async" width="697" height="260" src="/wp-content/uploads/2018/05/word-image-429.png" class="wp-image-470" srcset="/wp-content/uploads/2018/05/word-image-429.png 697w, /wp-content/uploads/2018/05/word-image-429-300x112.png 300w" sizes="(max-width: 697px) 100vw, 697px" /></p>
<p>
  BOM：brower object model 浏览器对象模型
</p>
<p><img loading="lazy" decoding="async" width="672" height="85" src="/wp-content/uploads/2018/05/word-image-430.png" class="wp-image-471" srcset="/wp-content/uploads/2018/05/word-image-430.png 672w, /wp-content/uploads/2018/05/word-image-430-300x38.png 300w" sizes="(max-width: 672px) 100vw, 672px" /></p>
<p>
  DOM由HTMDOM，XMLDOM，CSSDOM组成
</p>
<p>
  CSSDOM的语法结构：对象.style.样式属性
</p>
<p>
  oDiv.style.width
</p>
<p>
  oDiv.style.height
</p>
<p><img loading="lazy" decoding="async" width="449" height="49" src="/wp-content/uploads/2018/05/word-image-431.png" class="wp-image-472" srcset="/wp-content/uploads/2018/05/word-image-431.png 449w, /wp-content/uploads/2018/05/word-image-431-300x33.png 300w" sizes="(max-width: 449px) 100vw, 449px" /></p>
<h2>例题</h2>
<h3>表单验证</h3>
<p>
  难点：
</p>
<ol>
<li>
  验证表单的函数在表单提交的时候调用，表单提交的事件是onsubmit
</li>
<li>
  Onsubmit事件后面如果return fasle就终止提交，return true就提交
</li>
</ol>
<p><img loading="lazy" decoding="async" width="678" height="67" src="/wp-content/uploads/2018/05/word-image-432.png" class="wp-image-473" srcset="/wp-content/uploads/2018/05/word-image-432.png 678w, /wp-content/uploads/2018/05/word-image-432-300x30.png 300w" sizes="(max-width: 678px) 100vw, 678px" /></p>
<p>
  代码
</p>
<p>
  &lt;script type=&#8221;text/javascript&#8221;&gt;
</p>
<p>
  function check(){
</p>
<p>
  	//验证用户名
</p>
<p>
  	var oUser=document.getElementById(&#8216;username&#8217;);	//获取用户名的文本框对象
</p>
<p>
  	if(oUser.value==&#8221;){
</p>
<p>
  		alert(&#8216;用户名不能为空&#8217;);
</p>
<p>
  		oUser.focus();	//获取焦点
</p>
<p>
  		return false;
</p>
<p>
  	}
</p>
<p>
  	//验证密码
</p>
<p>
  	var oPwd=document.getElementById(&#8216;pwd&#8217;);	//获取密码对象
</p>
<p>
  	if(oPwd.value==&#8221;){
</p>
<p>
  		alert(&#8216;密码不能为空&#8217;);
</p>
<p>
  		oPwd.focus();
</p>
<p>
  		return false
</p>
<p>
  	}else{
</p>
<p>
  		if(oPwd.value.length!=6 || isNaN(oPwd.value)){
</p>
<p>
  			alert(&#8216;密码必须是6位的数字&#8217;);
</p>
<p>
  			oPwd.select();	//选中文本框的内容
</p>
<p>
  			return false;
</p>
<p>
  		}
</p>
<p>
  	}
</p>
<p>
  	return true;
</p>
<p>
  }
</p>
<p>
  &lt;/script&gt;
</p>
<p>
  &lt;form action=&#8221;&#8221; method=&#8217;post&#8217; onsubmit=&#8217;return check()&#8217;&gt;
</p>
<p>
  	&lt;table&gt;
</p>
<p>
  		&lt;tr&gt;
</p>
<p>
  			&lt;td&gt;用户名：&lt;/td&gt;
</p>
<p>
  			&lt;td&gt;&lt;input type=&#8221;text&#8221; id=&#8221;username&#8221;&gt;&lt;/td&gt;
</p>
<p>
  		&lt;/tr&gt;
</p>
<p>
  		&lt;tr&gt;
</p>
<p>
  			&lt;td&gt;密码：&lt;/td&gt;
</p>
<p>
  			&lt;td&gt;&lt;input type=&#8221;password&#8221; id=&#8221;pwd&#8221;&gt;&lt;/td&gt;
</p>
<p>
  		&lt;/tr&gt;
</p>
<p>
  		&lt;tr&gt;
</p>
<p>
  			&lt;td colspan=&#8217;2&#8242; align=&#8217;center&#8217;&gt;
</p>
<p>
  				&lt;input type=&#8221;submit&#8221; value=&#8221;提交&#8221;&gt;
</p>
<p>
  			&lt;/td&gt;
</p>
<p>
  		&lt;/tr&gt;
</p>
<p>
  	&lt;/table&gt;
</p>
<p>
  &lt;/form&gt;
</p>
<p><img loading="lazy" decoding="async" width="243" height="90" src="/wp-content/uploads/2018/05/word-image-433.png" class="wp-image-474" /></p>
<h3>设置时钟周期</h3>
<p><img loading="lazy" decoding="async" width="984" height="243" src="/wp-content/uploads/2018/05/word-image-434.png" class="wp-image-475" srcset="/wp-content/uploads/2018/05/word-image-434.png 984w, /wp-content/uploads/2018/05/word-image-434-300x74.png 300w, /wp-content/uploads/2018/05/word-image-434-768x190.png 768w" sizes="(max-width: 984px) 100vw, 984px" /><br />
<img loading="lazy" decoding="async" width="177" height="30" src="/wp-content/uploads/2018/05/word-image-435.png" class="wp-image-476" /></p>
<h3>设置定时器</h3>
<p><img loading="lazy" decoding="async" width="749" height="163" src="/wp-content/uploads/2018/05/word-image-436.png" class="wp-image-477" srcset="/wp-content/uploads/2018/05/word-image-436.png 749w, /wp-content/uploads/2018/05/word-image-436-300x65.png 300w" sizes="(max-width: 749px) 100vw, 749px" /><br />
<img loading="lazy" decoding="async" width="173" height="29" src="/wp-content/uploads/2018/05/word-image-437.png" class="wp-image-478" /></p>
<h2>作业</h2>
<ol>
<li>
  打印100以内的6的倍数，一行放7个
</li>
<li>
  求一元二次方程的根
</li>
<li>
  倒计时
</li>
</ol>
<p><img loading="lazy" decoding="async" width="339" height="34" src="/wp-content/uploads/2018/05/word-image-438.png" class="wp-image-479" srcset="/wp-content/uploads/2018/05/word-image-438.png 339w, /wp-content/uploads/2018/05/word-image-438-300x30.png 300w" sizes="(max-width: 339px) 100vw, 339px" /></p>
]]></content:encoded>
					
					<wfw:commentRss>/%e5%89%8d%e7%ab%af%e6%8a%80%e6%9c%af/440.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
