JS中的DOM对象及JS对document对像的操作
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对像的操作的更多相关文章
- js中的DOM对象 和 jQuery对象 比较
一,二者的区别 通过 jQuery 获取的元素是一个数组,数组中包含着原生JS中的DOM对象. 总结:jQuery 就是把 DOM 对象重新包装了一下,让其具有了 jQuery 方法. 二,二者的相互 ...
- js中的DOM对象和jQuery对象的比较
1. 二者的不同之处: 通过jQuery获取的元素是一个数组, 数组中包含着原生JS中的DOM对象. 例如, 针对下面的一个div结构: <div id="Box">& ...
- JS中的DOM对象
DOM对象 1. DOM树 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model),通过 HTML DOM对象,可访问 JavaScript HTML 文档的所有 ...
- DOM对象和js对象以及jQuery对象的区别
DOM对象和js对象以及jQuery对象的区别 DOM对象和js对象以及jQuery对象的区别 一.DOM对象 文档对象模型简称DOM,是W3C组织推荐的处理可扩展置标语言的标准编程接口. DOM实际 ...
- JS中的event 对象详解
JS中的event 对象详解 JS的event对象 Event属性和方法:1. type:事件的类型,如onlick中的click:2. srcElement/target:事件源,就是发生事件的 ...
- js中两个对象的比较
代码取自于underscore.js 1.8.3的isEqual函数. 做了一些小小的修改,主要是Function的比较修改. 自己也加了一些代码解读. <!DOCTYPE html> & ...
- MVC中处理Json和JS中处理Json对象
MVC中处理Json和JS中处理Json对象 ASP.NET MVC 很好的封装了Json,本文介绍MVC中处理Json和JS中处理Json对象,并提供详细的示例代码供参考. MVC中已经很好的封装了 ...
- js中的json对象详细介绍
JSON一种简单的数据格式,比xml更轻巧,在JavaScript中处理JSON数据不需要任何特殊的API或工具包,下面为大家详细介绍下js中的json对象, 1.JSON(JavaScript Ob ...
- JavaScript -- 时光流逝(五):js中的 Date 对象的方法
JavaScript -- 知识点回顾篇(五):js中的 Date 对象的方法 Date 对象: 用于处理日期和时间. 1. Date对象的方法 <script type="text/ ...
随机推荐
- Vue多元素过渡
前面的话 前面分别介绍了单元素过渡的CSS过渡和JS过渡,本文将详细介绍Vue多元素过渡 常见示例 最常见的多标签过渡是一个列表和描述这个列表为空消息的元素: <transition> & ...
- 设计模式原则(2)--Liskov Substitution Principle(LSP)--里氏替换原则
1.定义: 所有引用基类(父类)的地方必须能透明地使用其子类的对象.这一原则与继承紧密相关.如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的 ...
- JSP 标准标签库(JSTL)(JSP Standard Tag Library)
[1] JSTL简介 > JSTL是JSP的标准标签库 > JSTL为我们提供了一些常用的标签,供我们日常开发使用(if . if...else .遍历 . 日期格式化) ...
- synchronized VS Lock, wait-notify VS Condition
最近在看Java Threads第三版,收获颇多.全英文阅读,感觉真的是爽歪歪.推荐大家都看看. 这一篇想系统的讲一讲,线程之间通信的2种模式,wait-notify 和 Condition. 先上一 ...
- 震惊!WIN2003存在后门大全,提权成功率高
从某种意义上说,服务器被攻击是不可避免的,甚至被控制也情有可原.但绝对不能容忍的是,服务器被植入后门,攻击者如入无人之境,而管理者去浑然不觉.本文将对当前比较流行的后门技术进行解析,知己知彼方能杜绝 ...
- maven 搭建 SpringMVC + MyBatis(1)
·做了两年多Java Web一多半的项目都是SSM架构的,只搭建过两次,趁着周末做个总结整理. Eclipse搭建Maven项目 1.new project --> Maven project ...
- github如何添加ssh
1.运行git Bash 输入如下命令: $ cd ~/.ssh $ ls 输入这2个命令 ,我们可以看到 id_rsa.pub 或 id_dsa.pub 这2个文件已经存在了,id_rsa 是私钥, ...
- Spring详解(五)------AOP
这章我们接着讲 Spring 的核心概念---AOP,这也是 Spring 框架中最为核心的一个概念. PS:本篇博客源码下载链接:http://pan.baidu.com/s/1skZjg7r 密码 ...
- MongoDB-python的API手记
-------------------python调用MongoDB------------------- 1.官方文档:http://api.mongodb.org/python/current/t ...
- Express + Session 实现登录验证
1. 写在前面 当我们登录了一个网站,在没有退出登录的情况下,我们关闭了这个网站 ,过一段时间,再次打开这个网站,依然还会是登录状态.这是因为,当我们登录了一个网站,服务器会保存我们的登录状态,直到我 ...