DOM对象

  windows:属性:opener(打开者)

          方法:open()、close(),setTimeout()、setInterval()...

   location:属性:href

        方法:reload()刷新

   history:方法:go()

   status:不常用

   document:下面详细介绍

JS对document对像的操作

  分两个: 找到对象、操作对象。

  找到对象的方法:document.getElementById()、document.getElementsByName()、

          document.getElementsByTagName(),//通过元素名找到结果是数组,elements加s了

          document.getElementsByClassName()

    PS:this关键字的用法,指这条元素,省去了document.的方法找元素了

      例如给按钮创建单击事件 onclick="doout(this)"  方法:function dout(tx){tx.属性等}

  操作对象:包括:

    操作属性:取值:getAttribute,赋值:setAttribute,删除属性:remoeAttribute

    操作样式:内联样式:style.xxxx

          class:1、className

              2、把class当成属性来看

     操作内容:表单元素:value

          非表单元素:1、innerHTML

                2、innerText

    操作元素:操作整个元素:创建(字符串、createElement())、添加子元素(appendChild())、删除(remover())、复制(clonNode())

          操作相关元素:前后、父、子

演示open()、close()的用法

<script language="javascript">

  //打开b网页,a接收的就是b的windows

  var a = window.open("b.html","_blank","width=100 height=100 toolbar=no");

  window.setTimeout("ccc()",3000);//间隔3秒执行ccc()方法

  function ccc()
  {
    a.close();//关闭a对象的窗口
  }

</script>

演示opner()的用法

<script language="javascript">
function dodo(){
  //取出值
  var s = document.getElementById("t1").value;
  //给父窗口
  var dd = window.opener.document.getElementById("dd");   //在上一级的窗口找到 id为 dd 的元素
  dd.innerHTML = s;                      //赋值
}
</script>

body内的内容

<form>
<input type="text" id="t1" name="t1">
<input type="button" value="点击给父窗口" onclick="dodo()">
</form>

连续打开和连续关闭窗口

<script language="javascript">

  var arr = new Array();//用来接受窗口

  function doopen(){  //连续打开窗口

    for(var i=1;i<=5;i++){
      arr[i-1] = window.open("b.html","_blank","width=100 height=100       toolbar=no");
    }
  }  

  function doclose(){  //连续关闭窗口

    for(var i=0;i<arr.length;i++){
      arr[i].close();
    }
  }

</script>

body里面方法调用

<span onClick="doopen()">打开5个子窗口</span>
<span class="d2" onclick="doclose()">关闭5个子窗口</span>
<span onclick="doredirect()">转到新浪网</span>

<div>

location的href属性和reload()刷新方法

<script language="javascript">

  function doredirect(){

    //跳转操作

    window.location.href="http://www.sina.com.cn";

    //页面刷新操作
    // window.location.reload();
  }

</script>

body里面方法调用

<span onclick="doredirect()">转到新浪网</span>

document方法找到元素,并操作属性

<script language="javascript">

  function yx(){

    //把disabled="disabled"去掉
    var btn = document.getElementById("b3");
    btn.removeAttribute("disabled");
  }
  function byx(){
    //加上disabled="disabled"
    var btn = document.getElementById("b3");
    btn.setAttribute("disabled","disabled");
  }

</script>

body里面元素方法调用

<form>
<input disabled="disabled" type="submit" value="下一步" name="b3" id="b3"><br>
<input type="radio" name="r1" id="r1"  onclick="yx()">同意
<input type ="radio" name="r1" id="r2" checked="checked" onclick="byx()">不同意
</form>

通过操作属性,给元素加上单机事件实现按钮的可用不可用

<script language="javascript">

  var a = document.getElementsByName("r1"); //找到元素名为 ri 的元素集合
  for(var i=0;i<a.length;i++){
    a[i].setAttribute("onclick","bbb(this)");  //for循环给每个元素添加单机事件,注意this的使用
    //a[i].setAttribute("type","checkbox");  //设置表单元素
  }

  function bbb(dxan){
    if(dxan.getAttribute("id") == "r1"){
    document.getElementById("b3").removeAttribute("disabled");
    }
    else if(dxan.getAttribute("id") == "r2"){
      document.getElementById("b3").setAttribute("disabled","disabled");
    }
  }

</script>

body里面元素方法调用

<form>
  <input disabled="disabled" type="submit" value="下一步" name="b3" id="b3"><br>
  <input type="radio" name="r1" id="r1" >同意
  <input type ="radio" name="r1" id="r2" checked="checked">不同意
</form>

通过操作样式,给元素加上事件实现元素样式的改变

<style type="text/css">
.dd{
  width:100px;
  height:100px;
  border:5px solid red;
  float:left;
  margin:10px;
}
.tt{
  background-color:yellow;
}
</style>

<script language="javascript">

  var dd = document.getElementsByClassName("dd");
  for(var i=0;i<dd.length;i++){
  //dd[i].className+=" tt";
  var s = dd[i].getAttribute("class");               //获取属性值
  s = s+" tt";
  dd[i].setAttribute("class",s);                  //设置属性值
  //加上鼠标移动效果
  dd[i].setAttribute("onmouseover","doOver(this)");
  dd[i].setAttribute("onmouseout","doOut(this)");
  }

  function doOver(d){
    var s = d.className;
    var ks = s.indexOf(" ");
    if(ks > 0){
      s = s.substr(0,ks);                  //字符串截取
      d.className=s;
    }
  }
  function doOut(d){
    var s = d.className;
    var ks = s.indexOf("tt");
    if(ks < 0){
      d.className = d.className+" tt";          //字符串拼接
    }
  }

</script>

<div class="dd"></div>
<div class="dd"></div>

通过操作内容,改变元素的内容

<script language="javascript">
  function doinput(txt){
    var s = txt.value;                        //表单元素内容用value,方法加this参数,方法内不用通过document再找了
    var n = s.length;
    var shengyu = 140-n;
    document.getElementById("dd").innerHTML = shengyu;    //非表单内容用innerHTML
  }
</script>

<form>
<textarea rows="5" onkeyup="doinput(this)" cols="60" id="t1">
</textarea><br>
还可以输入<span id="dd">140</span>个字
</form>

实现时钟效果

<script language="javascript">
  function showShiJian(){
    var d = new Date();
    var s = d.getHours()+":";
    s += d.getMinutes()+":";
    s += d.getSeconds();
    document.getElementById("dd").innerHTML = s;
    window.setTimeout("showShiJian()",1000);
  }
  window.setTimeout("showShiJian()",1000);
</script>

<div id="dd" style="font-size:28px; font-weight:bold;"></div>

操作元素,创建等

<style type="text/css">
.bbb{                              //按钮样式
  width:50px;height:50px;
  font-size:24px;
  font-weight:bold;
  font-style:italic;
  margin:3px;
}
.selspan{                            //span元素样式
  color:red;
  font-weight:bold;
  font-size:18px;
  margin:0px 10px 0px 10px;
}
</style>

<script language="javascript">

  var selectcount=0;                                     //计数,只能选7个
  for(var i=1;i<=36;i++){
    /*var s = "<input type='button' value='"+i+"' class='bbb' onclick='doselect(this)'>"  //第一种字符串创建方式
    var dd = document.getElementById("dd");
    dd.innerHTML += s;*/
create
  var ab = document.createElement("input");                        //第二中createElenment创建方式
  ab.setAttribute("type","button");
  ab.setAttribute("value",i);
  ab.setAttribute("class","bbb");
  ab.setAttribute("onclick","doselect(this)");

  var dd = document.getElementById("dd");            //往 id 为dd 的元素中添加创建的元素
  dd.appendChild(ab); 
  }
  function doselect(btn){                      //实现选数功能
    selectcount++;
    if(selectcount>7){                      //只能选7个
      alert("asdfasf");
      return;
    }
  var s = btn.value; //按钮上的文字
  var ss = document.getElementById("ss");

  var span = "<span class='selspan' ondblclick='delnum(this)'>"+s+"</span>"  //创建元素
  ss.innerHTML += span;                            //添加元素

  btn.setAttribute("disabled","disabled");           //更改按钮属性,方法用了this所以btn相当于document.getElementBy...
  }                              //方法调用处<input type='button' value='"+i+"' class='bbb' onclick='doselect(this)'>
  function delnum(snum){                    //删除已选数字,需要改变已选数字样式,改变计数
    var num = snum.innerHTML;
    //找对应的按钮,设为可用
    var btns = document.getElementsByClassName("bbb");
    for(var i=0;i<btns.length;i++){
      var btnnum = btns[i].value;
      if(btnnum == num)    {
        btns[i].removeAttribute("disabled");
        break;
      }
    }

  //删除这个span
  snum.remove();
  selectcount--;
  }
</script>

<form>
<div id="dd"></div>

</form>
<br>
您选中的号码有:
<span id="ss"></span>

JS中的DOM对象及JS对document对像的操作的更多相关文章

  1. js中的DOM对象 和 jQuery对象 比较

    一,二者的区别 通过 jQuery 获取的元素是一个数组,数组中包含着原生JS中的DOM对象. 总结:jQuery 就是把 DOM 对象重新包装了一下,让其具有了 jQuery 方法. 二,二者的相互 ...

  2. js中的DOM对象和jQuery对象的比较

    1. 二者的不同之处: 通过jQuery获取的元素是一个数组, 数组中包含着原生JS中的DOM对象. 例如, 针对下面的一个div结构: <div id="Box">& ...

  3. JS中的DOM对象

    DOM对象 1. DOM树 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model),通过 HTML DOM对象,可访问 JavaScript HTML 文档的所有 ...

  4. DOM对象和js对象以及jQuery对象的区别

    DOM对象和js对象以及jQuery对象的区别 DOM对象和js对象以及jQuery对象的区别 一.DOM对象 文档对象模型简称DOM,是W3C组织推荐的处理可扩展置标语言的标准编程接口. DOM实际 ...

  5. JS中的event 对象详解

    JS中的event 对象详解   JS的event对象 Event属性和方法:1. type:事件的类型,如onlick中的click:2. srcElement/target:事件源,就是发生事件的 ...

  6. js中两个对象的比较

    代码取自于underscore.js 1.8.3的isEqual函数. 做了一些小小的修改,主要是Function的比较修改. 自己也加了一些代码解读. <!DOCTYPE html> & ...

  7. MVC中处理Json和JS中处理Json对象

    MVC中处理Json和JS中处理Json对象 ASP.NET MVC 很好的封装了Json,本文介绍MVC中处理Json和JS中处理Json对象,并提供详细的示例代码供参考. MVC中已经很好的封装了 ...

  8. js中的json对象详细介绍

    JSON一种简单的数据格式,比xml更轻巧,在JavaScript中处理JSON数据不需要任何特殊的API或工具包,下面为大家详细介绍下js中的json对象, 1.JSON(JavaScript Ob ...

  9. JavaScript -- 时光流逝(五):js中的 Date 对象的方法

    JavaScript -- 知识点回顾篇(五):js中的 Date 对象的方法 Date 对象: 用于处理日期和时间. 1. Date对象的方法 <script type="text/ ...

随机推荐

  1. 关于VS AddIn的注册

    使用VS2010创建addin工程时,如果选择的开发语言是unmanaged c++,以addin为后缀的XML描述文件就不起作用了.这种情况下addin通过注册表来实现注册功能.实际可在如下位置找到 ...

  2. .net core 2.0学习笔记(四):迁移.net framework 工程到.net core

    在迁移.net core的过程中,第一步就是要把.net framework 工程的目标框架改为.net core2.0,但是官网却没有提供转换工具,需要我们自己动手完成了..net framewor ...

  3. ASP.NET Core 运行原理解剖[1]:Hosting

    ASP.NET Core 是新一代的 ASP.NET,第一次出现时代号为 ASP.NET vNext,后来命名为ASP.NET 5,随着它的完善与成熟,最终命名为 ASP.NET Core,表明它不是 ...

  4. Mvc数据验证总结

    Mvc提供模型级数据验证 一.服务端验证: ModelState.IsValid ModelState.AddModelError("Name", "错误提示" ...

  5. 利用css实现页面加载时旋转动画

    有时浏览一些网站时在刚加载页面时候会出现一个滚动动画如下图,特别是对于一些移动端的站点或者混合应用来说应该用户体验会好很多,扒了下页面发现是用css样式控制的,于是把页面以及css样式赋值了下来, h ...

  6. 【LCT】一步步地解释Link-cut Tree

    简介 Link-cut Tree,简称LCT. 干什么的?它是树链剖分的升级版,可以看做是动态的树剖. 树剖专攻静态树问题:LCT专攻动态树问题,因为此时的树剖面对动态树问题已经无能为力了(动态树问题 ...

  7. WEB版一次选择多个文件进行批量上传(WebUploader)的解决方案

    本人在2010年时使用swfupload为核心进行文件的批量上传的解决方案.见文章:WEB版一次选择多个文件进行批量上传(swfupload)的解决方案. 本人在2013年时使用plupload为核心 ...

  8. 一篇文章读懂Java类加载器

    Java类加载器算是一个老生常谈的问题,大多Java工程师也都对其中的知识点倒背如流,最近在看源码的时候发现有一些细节的地方理解还是比较模糊,正好写一篇文章梳理一下. 关于Java类加载器的知识,网上 ...

  9. 实战案例--TEMPDB暴涨

    前言   tempdb暴增,造成磁盘空间不足,甚至影响业务运行.     正文   如图,tempdb log文件从7.40开始突然暴涨,因为 tempdb 0 M到 40G     tempdb 所 ...

  10. dubbo+zookeeper伪集群配置

    zookeeper作为注册中心,服务器和客户端都要访问,如果有大量的并发,肯定会有等待.所以可以通过zookeeper集群解决. 一.为什么需要zookeeper呢? 大部分分布式应用需要一个主控.协 ...