DOM (二)

作者: believedream | 来源:发表于2017-02-03 17:08 被阅读0次

第八天

03-对象模型-第02天{表单属性、属性操作}

表单属性

表单属性 作用 示例
type 设置input元素的类型 <input type="text"><input type="text">
value 设置input元素的值 <input type="text" value="123"><input type="text" value="123">
checked 设置input选择框是否选中 <input type="radio" checked="checked"><input type="radio" checked="checked">
selected 设置下拉列表select中的option是否被选中 <select><option selected="selected">我被选中了</option><option>没被选中</option></select><select><option selected="selected">我被选中了</option><option>没被选中</option></select>
disabled 设置input元素是否被禁用 <input type="text" disabled="disabled" value="我被禁用了"><input type="text" disabled="disabled" value="我被禁用了">

大量拼接字符串

var btn = document.getElementById("btn");
var demo = document.getElementById("demo");
var inputs = demo.getElementsByTagName("input");

for (var i = 0; i < inputs.length; i++) {
    inputs[i].value = i;
}
//大量拼接字符串很消耗性能
//大量拼接字符串用数组
btn.onclick = function () {
    var arr = [];
    for (var i = 0; i < inputs.length; i++) {
        //console.log(inputs[i].value);
        arr.push(inputs[i].value);
    }
    console.log(arr.join("-"));
    //join可以把数组中的字符串拼接
    //如果不传参 默认按照 , 拼接
};

仿京东搜索框

var txt = document.getElementById("txt");
//文本框获取焦点事件 onfocus
txt.onfocus = function () {
    //txt.value = "";
    //如果用户没有输入 才清空
    if (this.value === "这是什么👻❓") {
        this.value = "";
    }
};
//文本框失去焦点 onblur
txt.onblur = function () {
    //如果用户没有输入了文字 失去焦点后 才把默认文字加上
    if (this.value === "") {
        this.value = "这是什么👻❓";
    }
};

排他思想

<input type="button" value="按钮"/>
<input type="button" value="按钮"/>
<input type="button" value="按钮"/>
<input type="button" value="按钮"/>
<script>
    //点击当前按钮 只让当前按钮亮起来
    var inputs = document.getElementsByTagName("input");
    //给每一个都绑定事件
    for (var i = 0; i < inputs.length; i++) {
        inputs[i].onclick = function () {
            //让当前按钮亮起来
            //this.className = "highlight";
            //排他思想:干掉所有人留下我自己
            //干掉所有人 让所有人的类名是空
            for (var i = 0; i < inputs.length; i++) {
                inputs[i].className = "";
            }
            //留下我自己 让当前这个的类名变为highlight
            this.className = "current";
        };
    }
</script>

全选反选

var all = document.getElementById("j_cbAll");
var tbody = document.getElementById("j_tb");
var checkboxes = tbody.getElementsByTagName("input");//下面的单选框
//点击all 让下面的的选中状态和all一致
all.onclick = function () {
    for (var i = 0; i < checkboxes.length; i++) {
        checkboxes[i].checked = all.checked;
    }
};

//让下面的影响上面
//点击每一个都判断 如果每一个都选中了 all就选中 否则不选中
for (var i = 0; i < checkboxes.length; i++) {
  checkboxes[i].onclick = function () {
      var isCheckedAll = true;
      for (var i = 0; i < checkboxes.length; i++) {
          if (!checkboxes[i].checked) {
              isCheckedAll = false;
              break;
          }
      }
      all.checked = isCheckedAll;
  };
}

自定义属性

元素对象的自定义属性

  • 可以像给对象定义属性一样,直接以点语法设置属性

    <div id="box"></div>
    var box = document.getElementById("box");// 获取元素对象
    box.aaa = "bbb";// 设置属性
    
    
  • 可以设置该元素对应的标签所拥有的属性,也可以设置没有的属性

    <div id="box"></div>
    var box = document.getElementById("box");// 获取元素对象
    box.id = "cl";// div有id这个属性
    box.abc = “aaa”; // div没有abc这个属性,但是也可以设置成功
    
    

标签的自定义属性

  • 设置标签属性: setAttribute()

    <div id="box"></div>
    var box = document.getElementById("box");
    box.setAttribute("id","aaa");// 有规定的属性可以设置
    box.setAttribute("bbb","ccc");// 没有规定的属性也可以设置
    
    
  • 获取标签属性

    <div id="box"></div>
    var box = document.getElementById("box");
    box.getAttribute("id");// 有规定的可以获取
    box.getAttribute("aaa"); // 没有规定的也可以获取
    
    
  • 移除标签属性

    <div id="box"></div>
    var box = document.getElementById("box");
    box.removeAttribute("id"); // 有规定的可以删除
    box.removeAttribute("aaa"); // 没有规定的也可以删除
    
    

元素对象&&标签

  • 给元素对象设置自定义属性,无法映射到对应的标签上
  • 给标签设置自定义属性
    • 有规定的可以映射到元素对象上
    • 没有规定的无法映射到元素对象上
    • ie6/7/8都可以从元素对象上获取(特殊)
  • 标签和对象的自定义属性 不会相互影响(IE678除外)

相关文章

  • react基础入门:(二)原生JS操作DOM元素

    原文链接:react基础入门:(二)原生JS操作DOM元素 一 初始化项目 二 操作 DOM 获取 dom 元素 ...

  • DOM(二)

    DOM (一) 什么是DOM(Document Object Model):专门操作网页内容的APIHTML:专门...

  • DOM(二)

    DOM扩展 选择符API 在DOM(一) 中说到的方法属性nodeList 是动态的,性能存在很大的隐患 quer...

  • 二、DOM

    1、DOM:Document Object Model.document:网页加载到浏览器中时,DOM将网页文档转...

  • DOM (二)

    第八天 03-对象模型-第02天{表单属性、属性操作} 第八天表单属性大量拼接字符串仿京东搜索框排他思想全选反选自...

  • DOM :DOM0 DOM1 DOM2 DOM3

    一、DOM全称文档对象模型(Document Object Model) 二、DOM是什么DOM就是一个编程接口,...

  • Vue的虚拟dom

    一,vdom(virtual dom) 用js模拟dom结构,计算出最小的变更,操作dom 二,diff算法概...

  • 第十九节: JavsScript对象类型检测,克隆与JS异步加载

    一、克隆对象 浅浅拷贝 浅拷贝 深拷贝 二、检测类型 三、 DOM树解析 什么是DOM树 ==>DOM...

  • 06-BOM+DOM+事件

    一.BOM 1.BOM介绍 2.BOM中的对象和方法 二.DOM 1.DOM的概念 2.DOM节点分类 3.DOM...

  • 49.xml解析方式

    一.DOM(JAXP Crimson解析器) 二.SAX 三.JDOM 四.DOM4J 区别: 一.DOM4J性能...

网友评论

      本文标题:DOM (二)

      本文链接:https://www.haomeiwen.com/subject/timdittx.html