Document: 每个载入浏览器的HTML文档都会成为一个Document对象。

     Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问。

     并且Document 对象是 Window 对象的一部分,可通过window.document 属性对其进行访问。

document三个对象方法:

document.getElementsByTagName('  ') 获取所有的'  '标签(多个元素)
document.getElementById('  ') 根据‘  ’id找到某标签(一个元素)
document.getElementsByClassName('  ') 通过样式名找到'   '标签 (多个元素)                     

小例子;

<html>
<head>
<title> </title>
<style>
#n1{
color:red;
}
</style>
</head>
<body>
<div>
<div id = "n1">c1</div>
</div>
<ul>
<li>xxx</li>
<li>ooo</li>
<li>xxx</li>
<li>ooo</li>
</ul>
<div>
<div class= "c1">你</div>
<div class= "c1">很</div>
<div class= "c1">美</div>
</div>
<script type='text/javascript'> //不写type也可以,默认就是‘text/javascript’    var nid = document.getElementById('n1'); // 获取到n1对应的div标签
console.log(nid.innerText); // innerText获取标签里的内容,这里是c1
nid.innerText = "vera"; // 给n1的标签设置内容
  var lis = document.getElementsByTagName('li'); // 获取到标签名为‘li’的标签
   for(var i in lis){ // 循环设置标签内容
     var item = lis[i];
  item.innerText = i;
}
var lis2 = document.getElementsByClassName('c1'); // 获取到class名为‘c1’的标签
console.log(lis2);
for(var i in lis2){ // 循环设置标签内容
    var item = lis2[i];
item.innerText = i;
}
</script>
</body>
</html>

网页及console显示结果:

document.getElementsByName()小应用形式:

<html>
<head>
<title> </title>
</head>
<body>
<ul>
<li>0</li>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<form>
<p>用户名:<input name = 'username' value = '123'/></p>
<p>密码:<input name = 'pwd'value = '345'/></p>
</form>
 <script type='text/javascript'> //不写type也可以,默认就是‘text/javascript’
  var username = document.getElementsByName('username')[0]; //假若默认userName和pwd没有重复
   var pwd = document.getElementsByName('pwd')[0];
console.log(username.value, pwd.value); //.value获取input自闭合标签里的value值    /*以li标签为例,dom中两种for循环结果*/
   var lis = document.getElementsByTagName('li');
//for(var i in lis){
   // console.log(i); //输出的值有 : 0,1,2,3,length,item,namedItem
   //}
   for(var i=0;i<lis.length;i++){
   console.log(i); // 输出的值:0,1,2,3
   }
   </script>
  </body>
</html>

运行结果:

/*一些鼠标事件*/

 /*dom之自增数字*/

<html>
<head>
<meta charset='utf-8'/>
<title></title>
</head>
<body>
<div>
<div id = "num" > 1 </div>
<input type = "button" value = "+1" onclick="Add();"/>
</div>
<script type = "text/javascript">
function Add(){
var nid = document.getElementById('num');
var text = nid.innerText;
text = parseInt(text);
text += 1;
nid.innerText = text;
} </script>
</body>
</html>

自增数字

 /*dom之操作文本内容*/

innerText : 获取标签中的文本内容
innerHTML : 获取标签中间所有内容

小例子:

<html>
<head>
<title> </title>
</head>
<body>
<div id = 'n1'>
XXXOOO
<h1>ssbbb</h1>
</div>
<script type = 'text/javascript'>
var text = document.getElementById('n1');
console.log(text.innerHTML); //获取标签中间所有内容(包括里面包含的<h1>标签)
console.log(text.innerText); // 获取标签中所有的文本内容
</script>
</body>
</html>

结果截图:

/*小例子之用value获取文本*/

<html>
<head></head>
<body>
<!-- 特殊的自闭合标签用:value获取文本 -->
<h3><input type = 'button' value = '获取值' onclick = 'GetValue()'/></h3> <!--触发事件GetValue -->
<select id = 'n3'>
<option value = '1'> 北京 </option>
<option value = '2'> 上海 </option>
<option value = '3'> 广州 </option>
</select>
<script type = 'text/javascript'>
function GetValue(){
var obj = document.getElementById('n3');
alert(obj.value); // 利用.value获取文本
obj.value = '2'; // 获取值后将其设置为2(上海)
} </script> </body>
</html>

Velue获取文本

/*小例子之搜索框文本提示*/

<html>
<head>
<meta charset = 'UTF-8' >
<title></title>
<style>
#search{
opacity:0.37;
}
</style>
</head>
<body>
<input type = 'text' id = 'search' value = '请输入关键字' onfocus = 'Focus();' onblur = 'Blur();' />
<script type = 'text/javascript'>
function Focus(){
var nid = document.getElementById('search');
var value = nid.value;
if(value == '请输入关键字'){
nid.value = '';
}
}
function Blur(){
var nid = document.getElementById('search');
var value = nid.value;
if(!value.trim()){
nid.value = '请输入关键字';
}
}
</script>
</body>
</html>

搜索框

 /*dom之创建标签*/

/*通过字符串的方式创建*/

<html>
<head>
<title> </title>
</head>
<body>
<div id = 'con'></div>
<a target='_blank' href = 'http://www.baidu.com' onclick = 'return AddElement();'>添加</a>
     <!---先执行自定义事件再执行默认事件------>
<script>
function AddElement(){
//创建标签,添加至1中
var nid = document.getElementById('con');
var tag="<p><input type = 'text'/></p>";
//nid.innerHTML = tag; //只能添加一个text框
//beforeBegin , afterBegin, beforeEnd, afterEnd
con.insertAdjacentHTML('beforeBegin',tag);
//在前面添加text框,可以添加无数次(return 设置为true,每添加一次,就跳转一次百度)
return true; //<!--返回的是true:执行完此函数会跳转到百度---->
}
</script>
</body>
</html>

/*通过对象的方式创建标签*/

<html>
<head>
<title> </title>
</head>
<body>
<div id = 'con'></div>
<input type='button' value='添加' onclick = 'AddElement();'/>
<script>
function AddElement(){
var createObj = document.createElement('a'); //创建元素
createObj.href = "http://www.baidu.com"; // 添加属性
createObj.innerText = "我是百度";
var createBr = document.createElement('br');
console.log(createObj);
console.log(createBr);
var nid = document.getElementById('con');
// nid.innerHTML = createObj; //直接添加标签的方式,只能把"http://www.baidu.com"添加
nid.appendChild(createObj); //添加创建的标签(在孩子里添加元素)
nid.appendChild(createBr);
}
</script>
</body>
</html>

/*操作(创建、修改)标签属性*/

<html>
<head>
<title> </title>
</head>
<body>
<div id = 'con'>xxx</div>
<script>
var nid = document.getElementById('con');
nid.setAttribute('name','333'); // 设置属性name=2333
nid.setAttribute('sb','2333'); // 设置自定义属性sb
nid.style.fontSize='90px'; // 设置大小为90px
// 在设置如font-size之类的属性时,写法为将-去掉,后一个单词首字母大写‘S’
nid.className='ccc'; // 设置class名为ccc
nid.setAttribute('class','ooo'); // 设置class名为ooo
console.log(nid.getAttribute('name')); //查找结果:333
nid.removeAttribute('sb'); // 删除sb属性
</script>
</body>
</html>

操作结果:

/*dom之表单提交*/

<html>
<head>
<title> </title>
<style>
.c{
padding:2px;
display:inline;
border:1px solid black;
background-color:yellow;
}
</style>
</head> <body>
<form id = 'fxx' action = "http://www.sogou.com/web" method = 'get'>
<input name="query" type = "text"/>
<!--<input type = 'submit' value = '提交'> // 传统提交方式-->
<div class='c' onclick = 'Submit();'> 提交 </div>
</form>
<script>
function Submit(){
document.getElementById('fxx').submit(); // js提交表单
}
</script>
</body>
</html>

dom骚操作

<html>
<head>
<meta charset='utf-8'>
<title> </title>
</head>
<body>
<form id = 'fxx' action = "http://www.sogou.com/web" method = 'get'>
<input name="query" type = "text"/>
<input type = "submit" onclick = 'return MySubmit();'value = '提交'/> </form>
<script>
function MySubmit(){
var q = document.getElementsByName('query')[0];
if(q.value.trim()){
return true;
}else{
alert('请输入文字内容'); // 提示
return false;
}
}
</script>
</body>
</html>

dom骚操作2号

/*dom之小小功能*/

/*confirm*/

<html>
<head>
<meta charset='utf-8'>
<title> </title>
</head>
<body>
<input type = 'button' value = '来抚摸我啊' onmouseover = 'MyConfirm();'/> <!--onmouseover 鼠标放在按键上的效果-->
<script>
function MyConfirm(){
var ret = confirm('SB'); // 通过confirm可以用户是点了确定(true)还是取消(false)
}
</script>
</body>
</html>

confirm

/*定时器setInterval*/

<html>
<head>
<meta charset='utf-8'>
<title> </title>
</head>
<body>
<script>
// setInterval('操作','间隔时间'); //本质每多少时间创建一个线程
setInterval("alert('ssbb')",1000);
</script>
</body>
</html>

定时器

/*会动的title*/

<html>
<head>
<meta charset='utf-8'>
<title>你是一个圈圈</title>
</head>
<body>
<script>
setInterval('Func();',1000); // 每一秒执行一次
function Func(){
var text = document.title; // 获取题目
var firstChar = text.charAt(0); // 获取第一个元素
var subText = text.substring(1,text.length); // 子序列
var newTitle = subText + firstChar;
document.title = newTitle;
}
</script>
</body>
</html>

一直动的title

<html>
<head>
<meta charset='utf-8'>
<title>你是一个圈圈</title>
</head>
<body>
<input type ='button' onclick = "StopInterval();" value = '停下来'>
<script>
obj1 = setInterval('Func();',1000); // 每一秒执行一次
function StopInterval(){ // 当执行setInterval时,程序会有一个句柄(一个全局变量)
//清除定时器
clearInterval(obj1); // 把句柄停止掉
}
function Func(){
var text = document.title; // 获取题目
var firstChar = text.charAt(0); // 获取第一个元素
var subText = text.substring(1,text.length); // 子序列
var newTitle = subText + firstChar;
document.title = newTitle;
}
</script>
</body>
</html>

会停下来的title

<html>
<head>
<meta charset='utf-8'>
<title>你是一个圈圈</title>
</head>
<body>
<input type ='button' onclick = "StopInterval();" value = '停下来'>
<script>
obj2 = setTimeout('Func();',10000); // 只有一个线程(只执行一次操作)每一秒执行一次
function StopInterval(){
clearTimeout(obj2); // 一旦执行就会一动不动
}
function Func(){
var text = document.title; // 获取题目
var firstChar = text.charAt(0); // 获取第一个元素
var subText = text.substring(1,text.length); // 子序列
var newTitle = subText + firstChar;
document.title = newTitle;
} </script>
</body>
</html>

只能动一次的title

html_Dom的更多相关文章

  1. HTML_DOM学习

    HTML DOM 树 通过ID/类名/标号可以定位HTML元素,然后可用JS改变这些元素的样式内容,并对DOM事件作出反应 对HTML事件的响应: onmousedown 和onmouseup/onc ...

  2. html_dom类读取

    上传类文件以后,有三种方式调用这个类:从url中加载html文档从字符串中加载html文档从文件中加载html文档 复制代码 代码如下: <?php// 新建一个Dom实例$html = new ...

  3. 锋利的jQuery--jQuery与DOM对象的互相转换,DOM的三种操作(读书笔记一)

    1.jQuery对象就是通过jQuery包装DOM对象后产生的对象.   2.jQuery对象和DOM对象的相互转换.   良好的书写风格: var $input=$("input" ...

  4. HTML 学习笔记 JQuery(DOM 操作)

    一般来说,DOM操作分为三个方面,即:DOM Core(核心), HTML_DOM 和 CSS_DOM. 1.DOM Core DOM Core 并不专属于JavaScript,任何一种支持DOM的程 ...

  5. js 假值

    function demo(a){ if(a){ console.log(111); }else{ console.log(222); } } demo(0) html_dom.html:27 222 ...

  6. 《锋利的jQruery》读书笔记

    由于是一边看书一边练习,所以干把笔记写在html文档中.想看的同学可以复制到一个html文档中,结合浏览器查看.不得不说<锋利的jQuery>是本好书,建议好好看看.尊重知识产权,请购买正 ...

  7. jquery_DOM操作

    DOM操作:DOM Core(核心),HTML_DOM,CSS_DOM CSS_DOM操作: css()获取或添加样式 opacity()透明设置 height()高度值 width()宽度 offs ...

  8. JQuery快速入门

    Write less, do more, I like jQuery. jQuery是最常用的js库,整体来说非常轻量并易于扩展,对于移动应用可以使用其更轻量的孪生兄弟Zepto代替.其是由John ...

  9. 黄聪:PHP使用Simple_HTML_DOM遍历、过滤及保留指定属性

    <? /* * 参考资料: * http://www.phpddt.com/manual/simplehtmldom_1_5/manual_api.htm * http://www.phpddt ...

随机推荐

  1. matolop画图

    import numpy as np import matplotlib.pyplot as plt x=np.linspace(0,6,100) y=np.cos(2*np.pi*x)*np.exp ...

  2. 老男孩Python全栈学习 S9 日常作业 008

    1.有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合 pythons={'alex','egon','yuanhao','wupeiq ...

  3. python 高级部分精华--那些书本不会告诉你的坑

    递归目录生成器方式, else 里的 tmp 显示获取 yield 不可缺少 , 递归算法中若要使用生成器,需要在生成器的原函数(首次调用)显式得到所有yield值 def get_file_recu ...

  4. ReactJS虚拟DOM效应带来的一则副作用探索

    疑问 https://github.com/ruanyf/react-demos/blob/master/demo08/index.html 在如下代码中的 18 行, 需要将本类中的 方法,进行绑定 ...

  5. Node的express配置使用ejs模板

    注册ejs模板为html页.以.ejs为后缀的模板页,现在的后缀名可以是.html app.engine('.html', require('ejs').__express); 设置视图模板的默认后缀 ...

  6. 散列(C++实现)

    散列的构成:散列函数,散列表的存储方式,散列表的冲突解决方法. 1.散列函数 较常用的散列函数有除留余数法,数字分析法,平方取中法,折叠法. 2.散列表的存储方式 闭散列法(开地址法),用数组存储:开 ...

  7. 如何解压DMK固件

    一.DMK固件 从罗克韦尔自动化下载的固件通常是以DMK为后缀名的文件: DMK文件无法直接使用,需要使用DMK Extraction Tool解压: 二.方法步骤 1.  如果从官网下载的固件文件后 ...

  8. 97w网站邀请码

    我是一个老粉丝了. 如果想要97w网站邀请码可以留下联系方式,给我发过去哦. 最好是邮箱. http://www.97w.net/tag.html

  9. raw_input与input

    raw_input 不管用户输入的是什么,最后打印的类型都会是str字符串类型 input 会根据用户的输入变换成相应的类型,但是需要注意的是我们用户在输入字符或者字符串的时候,需要给他们加上双引号, ...

  10. 从输入URL到浏览器显示页面发生了什么

    1.输入网址 当你开始输入网址比如www.cnblogs.com时游览器就可以在书签或者历史记录里面去搜索相关的网址推荐给你. 2.游览器查找域名的IP地址 ① 请求发起后,游览器首先会解析这个域名, ...