javascript Dom操作

clientHeight 返回元素的可见高度 (内容高度+padding高度)
clientWidth 返回元素的可见宽度 (内容宽度+padding宽度)
element.offsetHeight元素高度(内容高度+padding高度+border高度)

返回元素的高度。    

element.offsetWidth 元素宽度(内容高度+padding高度+border高度)

返回元素的宽度。

element.offsetLeft祖先定位元素

返回元素的水平偏移位置

element.offsetTop祖先定位元素

返回元素的垂直偏移位置

focus()设置文档或元素获取焦点

window.onload = function() {
    document.getElementById("myText").focus();
};

getAttributeNode()返回指定属性节点

function myFunction(){
    var a=document.getElementsByTagName("a")[0];
    var x=document.getElementById("demo");
    x.innerHTML=a.getAttributeNode("target").value;
}

getElmentsByClassName('class') 方法返回具有指定类名的元素子元素集合,以 NodeList 对象。
getElmentById('id) 方法返回具有指定id名的元素子元素集合,以 NodeList 对象。
getElementsByTagName() 方法返回具有指定标签名的元素子元素集合,以 NodeList 对象。


<ul><li>Coffee</li><li>Tea</li></ul>

<p id="demo">请点击按钮来改变某个列表项的文本。</p>

<button onclick="myFunction()">试一下</button>

<script>
function myFunction()
{
var list = document.getElementsByTagName("UL")[0]
list.getElementsByTagName("LI")[0].innerHTML = "Milk";
}
</script>

设置属性

getAttribute() 方法返回指定属性名的属性值。

<a href="/jsref/dom_obj_attributes.asp" target="_blank">Attr 对象</a>,

<p id="demo">请点击按钮来显示上面这个链接的 target 属性值。</p>

<button onclick="myFunction()">试一下</button>

<script>
function myFunction()
{
var a=document.getElementsByTagName("a")[0];
document.getElementById("demo").innerHTML=a.getAttribute("target");
}
</script>

attributes 属性返回指定节点的属性集合,即 NamedNodeMap。

<p>点击按钮来查看 button 元素拥有多少属性。</p>

<button id="myBtn" onclick="myFunction()">试一下</button>

<p id="demo"></p>

<script>
function myFunction() {
    var x = document.getElementById("myBtn").attributes.length;
    document.getElementById("demo").innerHTML = x;
}
</script>

<p>结果应该是 2(button 元素的 id 和 onclick 属性)。</p>

<p><b>注释:</b>Internet Explorer 8 以及更早的版本中,attributes 属性将返回元素所有可能的属性的集合,在本例中,会返回大于 2 的数字。</p>

setAttribute() 方法添加指定的属性,并为其赋指定的值。

document.getElementsByTagName("INPUT")[0].setAttribute("type","button");

nodeName 属性指定节点的节点名称。

如果节点是元素节点,则 nodeName 属性返回标签名。

入股节点是属性节点,则 nodeName 属性返回属性的名称。

对于其他节点类型,nodeName 属性返回不同节点类型的不同名称。

tagName 属性返回元素的标签名。

document.getElementById("demo").tagName;

dir设置或返回一个元素中的文本方向

<html>
<body id="myid" dir="rtl">

<script>
var x=document.getElementsByTagName('body')[0];
x.dir = 'rtl';
document.write("Text direction: " + x.dir);
document.write("<br>");
document.write("An alternate way: ");
document.write(document.getElementById('myid').dir);
</script>

</body>
</html>

className 属性设置或返回元素的 class 属性。

<body id="myid" class="mystyle">

 <script>
 var x=document.getElementsByTagName('body')[0];
 x.className = 'class1';
 document.write("Body CSS class: " + x.className);
 
 document.write("<br>");
 document.write("An alternate way: ");
 document.write(document.getElementById('myid').className);
 </script>

id 属性设置或返回元素的 id。

HTMLElementObject.id=id
 document.write(x.id);

contentEditable 属性设置或返回元素内容是否可编辑。

<p id="myP">这是一个段落。请点击按钮进行编辑。</p>

<button onclick="myFunction()">试一下</button>

<p id="demo"></p>

<script>
function myFunction() {
    document.getElementById("myP").contentEditable = true;
    document.getElementById("demo").innerHTML = "现在这个 p 元素可编辑。请尝试改变其文本。";
}
</script>

textContent 属性设置或返回指定节点的文本内容,以及它的所有后代。

document.getElementById("myList).textContent;
a.textContent = '我是内容';

innerHTML 属性设置或返回元素的 inner HTML。

document.getElementById('myAnchor').innerHTML="W3Schools";
 document.getElementById('myAnchor').href="http://www.w3schools.com";
 document.getElementById('myAnchor').target="_blank";

节点操作

lastChild返回列表中的最后一个子节点:

document.getElementById("myList").lastChild;

firstChild 属性返回指定节点的首个子节点,以 Node 对象。

<p id="demo">请点击按钮来获得文档首个子节点的节点名。</p>

<button onclick="myFunction()">试一下</button>

<script>
function myFunction()
{
var x=document.getElementById("demo");  
x.innerHTML=document.firstChild.nodeName;
}
</script>

cloneNode(BOOL) 方法创建节点的拷贝,并返回该副本。ture克隆属性和子节点false克隆子节点

<ul id="myList1"><li>Coffee</li><li>Tea</li></ul>
<ul id="myList2"><li>Water</li><li>Milk</li></ul>

<p id="demo">请点击按钮把项目从一个列表复制到另一个列表中。</p>

<button onclick="myFunction()">试一下</button>

<script>
function myFunction()
{
var itm=document.getElementById("myList2").lastChild;
var cln=itm.cloneNode(true);
document.getElementById("myList1").appendChild(cln);
}
</script>

childNodes 属性返回节点的子节点集合,以 NodeList 对象。

<p id="demo">请点击按钮来获得 body 元素子节点的相关信息。</p>

<button onclick="myFunction()">试一下</button>

<script>
function myFunction()
{
var txt="";
var c=document.body.childNodes;
for (i=0; i<c.length; i++)
  {
  txt=txt + c[i].nodeName + "<br>";
  };
var x=document.getElementById("demo");  
x.innerHTML=txt;
}
</script>

<p><b>注释:</b>元素中的空格被视为文本,而文本被视为节点。</p>

appendChild() 方法向节点添加最后一个子节点。

<div id="div1">
<p id="p1">这是一个段落。</p>
<p id="p2">这是另外一个段落。</p>
</div>
 
<script>
  var para = document.createElement("p");
  var node = document.createTextNode("这是一个新的段落。");
  para.appendChild(node);
 
  var element = document.getElementById("div1");
  element.appendChild(para);
</script>

replaceChild() 方法用新节点替换某个子节点。你需要知道该元素的父元素。

<div id="div1">
<p id="p1">这是一个段落。</p>
<p id="p2">这是另外一个段落。</p>
</div>
 
<script>
var para = document.createElement("p");
var node = document.createTextNode("这是一个新的段落。");
para.appendChild(node);
 
var parent = document.getElementById("div1");
var child = document.getElementById("p1");
parent.replaceChild(para, child);
</script>

insertBefore() 方法在您指定的已有子节点之前插入新的子节点。

<div id="div1">
<p id="p1">这是一个段落。</p>
<p id="p2">这是另外一个段落。</p>
</div>
 
<script>
var para = document.createElement("p");
var node = document.createTextNode("这是一个新的段落。");
para.appendChild(node);
 
var element = document.getElementById("div1");
var child = document.getElementById("p1");
element.insertBefore(para, child);
</script>

parentNode 属性以 Node 对象的形式返回指定节点的父节点。

function myFunction(){
    var x=document.getElementById("demo");  
    var y=document.getElementsByTagName("LI")[0];
    x.innerHTML=y.parentNode.nodeName;
}

nextSibling 属性返回指定节点之后紧跟的节点,在相同的树层级中。\

function myFunction(){
    var x=document.getElementById("demo");  
    x.innerHTML=document.getElementById("item1").nextSibling.id;
}

previousSibling 属性返回同一树层级中指定节点的前一个节点。

function myFunction(){
    var itm=document.getElementById("item2");
    var x=document.getElementById("demo");  
    x.innerHTML=itm.previousSibling.id;
}

删除操作

removeAttribute() 方法删除指定的属性。

document.getElementsByTagName("H1")[0].removeAttribute("style");

removeAttributeNode() 方法删除指定的属性,并以 Attr Node 对象返回被删除的属性。

var n=document.getElementsByTagName("INPUT")[0];
var a=n.getAttributeNode("type");
n.removeAttributeNode(a)

removeChild()方法指定元素的某个指定的子节点。

var list=document.getElementById("myList");
list.removeChild(list.childNodes[0]);

removeEventListener()移除由 addEventListener() 方法添加的事件句柄

document.getElementById("myDIV").addEventListener("mousemove", myFunction);
function myFunction() 
{
    document.getElementById("demo").innerHTML = Math.random();
}
function removeHandler() 
{
    document.getElementById("myDIV").removeEventListener("mousemove", myFunction);
}

判断

如果存在指定属性,则 hasAttribute() 方法返回 true,否则返回 false。

document.getElementsByTagName("BUTTON")[0].hasAttribute("onclick");

如果指定节点拥有属性,则 hasAttributes() 方法返回 true,否则返回 false。

<p id="demo">请点击按钮来查看 body 元素是否拥有属性。</p>

<button onclick="myFunction()">试一下</button>

<script>
function myFunction()
{
var x=document.getElementById("demo");
x.innerHTML=document.body.hasAttributes();
}
</script>

hasChildNodes() 方法返回 true,如果指定节点拥有子节点,否则返回 false。

<ul id="myList"><li>Coffee</li><li>Tea</li></ul>

<p id="demo">请点击按钮来查看列表元素是否拥有子节点。</p>

<button onclick="myFunction()">试一下</button>

<script>
function myFunction()
{
var lst=document.getElementById("myList");
var x=document.getElementById("demo");
x.innerHTML=lst.hasChildNodes();
}
</script>

haseFocus()检测文档或元素是否获取焦点

function myFunction() {
    var x = document.getElementById("demo");
    if (document.hasFocus()) {
        x.innerHTML = "文档已获取焦点。";
    } else {
        x.innerHTML = "文档失去焦点。";
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,928评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,192评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,468评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,186评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,295评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,374评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,403评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,186评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,610评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,906评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,075评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,755评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,393评论 3 320
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,079评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,313评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,934评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,963评论 2 351

推荐阅读更多精彩内容

  • 什么是DOM??? DOM(Document Object Model 文档对象模型)是针对HTML和XML文档的...
    荧惑3_3阅读 1,383评论 0 1
  • 目录 1. 基本概念 1.1 Node类型 DOM1级定义了一个Node接口,该接口由DOM中所有节点类型实现。这...
    王童孟阅读 427评论 0 1
  • 节点 节点类型 每个节点都有一个 nodeType 属性,用于表示节点类型。nodeType 属性返回节点的类型。...
    练晓习阅读 442评论 0 4
  •   DOM(文档对象模型)是针对 HTML 和 XML 文档的一个 API(应用程序编程接口)。   DOM 描绘...
    霜天晓阅读 3,625评论 0 7
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,113评论 0 21