JavaScript学习-DOM扩展_专有扩展

1,介绍

  • 有大量专有的DOM扩展没有成为标准,但这并不是说它们将来不会被写进标准。

2,children属性

  • 这个属性是HTMLCollection的实例。
  • 只包含元素中同样还是元素的子节点,除此之外,children属性与childNodes没有什么区别。

3,contains()方法

  • 确定某个节点是不是另一个节点的后代。
  • 支持contains()方法的浏览器有IE、Firefox 9+、Safari、Opera和Chrome。
  • 使用DOM Level 3 compareDocumentPosition()也能够确定节点间的关系。返回一个表示该关系的位掩码(bitmask)。

    • 下表列出了这个位掩码的值。
      这里写图片描述
    • 对结果和16按位与,也可实现contains()方法效果。

      var result = document.documentElement.compareDocumentPosition(document.body);
      alert(!!result & 16);// 使用!!操作符会将该数值转换成布尔值,相当于boolin();
  • 通用的contains的函数

    function contains(refNode,otherNode){
        if(typeof refNode.contains == "function" && (!client.engine.webkit) || client.engine.webkit >= 522)){
            return refNode.contains(otherNode);
        }else if(typeof refNode.compareDocumentPosition == "function"){
            return !!(refNode.compareDocumentPosition(otherNode) & 16);
        }else {
            var node = otherNode.parentNode;
            do {
                if(node == refNode){
                    return true;
                }else{
                    node = node.parentNode;
                }
            }while (node !== null);
            return false;
        }
    }

4,插入文本

  • innerHTML和outerHTML已经被HTML5纳入了规范,还有两个没有被HTML5纳入规范的属性innerText和outerText;
  • innerText属性

    • 代码说话

      <div> id="content">
          <p>This is a<strong>paragraph</strong> with a list following it.</p>
          <ul>
              <li>Item 1</li>
              <li>Item 2</li>
              <li>Item 3</li>
          </ul>                
      </div>
    • innerText属性会返回下列字符串:

      This is a paragraph with a list following it.
      Item 1
      Item 2
      Item 3
    • innerText的写入示例:

      div.innerText = "Hell world!";
    • HTML代码就会变成如下所示

      <div id="content">Hell world!</div>
  • outerText属性
    • 除了作用范围扩大到了包含调用它的节点之外,outerText与innerText基本上没有多大区别。

5,滚动

  • 除了HTML5纳入规范的scrollIntoView()纳入规范,还有其他几个专有方法可以在不同的浏览器中使用,下面列出的几个方法都是对HTMLElement类型的扩展,在所有元素中都可以调用。
    这里写图片描述

  • scrollIntoView()和scrollIntoViewIfNeeded()的作用对象是元素的容器,而scrollByLines()和scrollByPages()影响的则是元素自身。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值