1.childNodes,获取子节点,本身就是一个数组,可以通过下标childNodes[i]来获取某个子节点。

alert(obj.childNodes.length);    //高级浏览器会有空白节点的存在

//循环根据节点的nodeType类型来判断是不是元素节点
for(var i = 0, len = aElement.childNodes.length; i < len; i++){
  if(aElement.childNodes[i].nodeType == 1){
    aElement.childNode[i].style.background = "red";
  }
}

2.首尾子节点

firstChild,firstElementChild;

lastChild,lastElementChild;

3.兄弟节点

previousSibling,previousElementSibling;

nextSibling,nextElementSibling;

//用if来判断firstChild与firstElementChild来兼容

if(obj.firstElementChild){
  obj.firstElementChild.style.background = "red";
}else{
  obj.firstChild.style.background = "red";
}

其他节点同理

//删除空白节点,来兼容firstChild

function cleanWhiteSpace(element){
  for(var i = 0; i < element.chiledNodes.length; i++){
    var node = element.childNodes[i];      //循环当前的子节点
    if(node.nodeType == 3 && !/\S/.test(node.nodeValue)){  
      node.parentNode.removeChild();    //\S匹配任何可见字符,当节点是文本节点与是!/\S/,非可见字符的时候,就删除这些节点
    }
  }
}

4.父元素parentNode

//点击当前a标签,查找a标签的父级,然后隐藏

var arrA = document.getElementsByTagName("a");
  for(var i = 0, len = arrA.length; i < len; i++){
    arrA[i].onclick = function(){
      this.parentNode.style.display = "none"
    }
  }

5.用className选择元素

//选取class为box的li,将其变色

var aLi = document.getElementsByTagName("li");
for(var i = 0, len = aLi.length; i < len; i++){
  if(aLi[i].className == "box"){
    this.style.background = "red";
  }
}
//封装

function getByClass(objParent,targetClass){
  var aResult = [];
  var aElement =objParent.getElementsByTagName("*");
  for(var i = 0, len = aElement.length; i < len; i++){
    if(aElement[i].className == targetClass){
      aResult.push(aElement[i]);
    }
  }
  return aResult;            //返回class为box的数组
} //调用 var aBox = getByClass(aNav,"box");      //得到class为box的数组 for(var i = 0, len = aBox.length; i < len; i++){
  aBox[i].style.background = "red";
}

2015.7.12js-11(DOM基础)的更多相关文章

  1. 11 DOM基础

    1.css   标签 js       元素 dom    节点,元素节点,属性节点,文本节点 2.dom浏览器支持率 ie      10% chrome   60% FF       99% 3. ...

  2. JavaScript DOM基础总结

    上个月在进行百度三面时候,面试官提问JavaScript DOM方法,我回答的有点少,前面太关注JavaScript 兼容性,框架方面,JavaScript 原生DOM基础没有记牢,心中有点遗憾.下来 ...

  3. HTML DOM基础知识

    HTML DOM基础知识 一.什么是DOM? 1.HTML DOM 定义了访问和操作HTML文档的标准方法. 2.HTML DOM 把 HTML 文档呈现为带有元素.属性和文本的树结构(节点树). 3 ...

  4. Javascript DOM基础(一)概念

    Dom基础概念: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" ...

  5. jQuery DOM基础

    jQuery DOM基础 1.对元素内容的获取和修改: 表单用value(),普通元素用html()和text(). html()  html(value)设置和获取html内容,有html标签会自动 ...

  6. js入门——Dom基础

    DOM=DocumentObject Model,文档对象模型. Dom有三个不同的部分. 1.核心DOM 也是最基础的文档结构的标准模型 2.XMLDOM 针对XML文档的标准模型 3.HTML D ...

  7. 第一百一十三节,JavaScript文档对象,DOM基础

    JavaScript文档对象,DOM基础 学习要点: 1.DOM介绍 2.查找元素 3.DOM节点 4.节点操作 DOM(Document Object Model)即文档对象模型,针对HTML和XM ...

  8. DOM基础(四)

    每次写DOM的时候,就觉得好像没什么好写,因为涉及到知识点的方面的确不多,对于DOM来说,更多的还是练习为主.在练习的时候,最好能结合着js基础语法的知识点来学习.这样,在学习DOM的时候就不会那么枯 ...

  9. DOM基础(二)

    在我之前写的DOM基础(一)的文章中提到过兼容性的问题,也就是在获取标签间文本信息的时候,早期的火狐版本是不支持innerText的,只支持textContent ,现在的火狐浏览器两者都支持.而IE ...

  10. BOM基础 计时器 定时器 DOM 基础

    -------------------------------------------滴水穿石,我心永恒. day48 CSSJS 1 ECMA script 2 BOM browser object ...

随机推荐

  1. 【Intel AF 2.1 学习笔记二】AF中的页面——Panel

    Panel Panel控件是你的app中的独立内容的区域控件.它是af UI的核心.Panel div 元素实际上承载了app中你管理和显示的界面元素和内容. 创建panel控件是相当地容易的:在id ...

  2. Window 10 :我的性能优化:那效果,杠杠的!

    微软的 windows 10,不错! 当全新安装后,性能总觉得别别扭扭,不那么干净利落. 下面就是我的个人优化措施,期间有很多技术性的操作,如果你没有动手能力,或者是技术小白,可以不用再看了! (1) ...

  3. hdfs 机架感知

    一.背景   分布式的集群通常包含非常多的机器,由于受到机架槽位和交换机网口的限制,通常大型的分布式集群都会跨好几个机架,由多个机架上的机器共同组成一个分布式集群.机架内的机器之间的网络速度通常都会高 ...

  4. Android开发学习笔记-自定义控件的属性

    若想让自定义控件变得更加方便灵活,则就需要对控件进行定义属性,使其用起来更方便. 下面是自定义控件属性的方法 1.添加attrs.xml,内容格式样式可以参考sdk\platforms\android ...

  5. MLE、MAP、贝叶斯三种估计框架

    三个不同的估计框架. MLE最大似然估计:根据训练数据,选取最优模型,预测.观测值D,training data:先验为P(θ). MAP最大后验估计:后验概率. Bayesian贝叶斯估计:综合模型 ...

  6. 8 -- 深入使用Spring -- 2...3 使用@Resource配置依赖

    8.2.3 使用@Resource配置依赖 @Resource 位于javax.annotation包下,是来自Java EE规范的一个Annotation,Spring直接借鉴了该Annotatio ...

  7. ios开发之--所有设备的屏幕尺寸

    所有设备型号官网地址:https://www.theiphonewiki.com/wiki/Models iPhone: 机型 像素 比例 像素密度 屏幕尺寸 机型代码 发布日期 iPhone 2g ...

  8. 【GIS】GDAL Python 影像裁剪

    # -*- coding: utf-8 -*- """ Created on Fri Nov 30 11:45:03 2018 @author: Administrato ...

  9. goto的用法

    using UnityEngine; using System.Collections; public class goto1 : MonoBehaviour { public bool can = ...

  10. android新建的项目界面上没有显示怎么办?

    看log也没有说明具体情况? 一翻折腾在清单文件里加了权限就好了!!!