获取dom对象(2)

<html>
<head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
    <title>获取dom对象</title>
</head>
<body>
    <input name="btn1" type="button" value="mybtn1" />
    <input name="btn1" type="button" value="mybtn2" />
</body>
</html>

<script type="text/javascript">
    //兼容ie浏览器测试
    var console = console || {};
    console.log = console.log || function(a){
        alert(a);
    }

    /*
    getElementsByName(name);
    该方法可以获取到name相同的dom对象集合.
    因为name属性在文档中允许值相同,所以不管name的值在文档中是否唯一,返回的结果都是一个集合.
    我们需要通过下标获取单个的dom对象.
    例如:常见的单选框我都需要把name属性设置相同的值,让他们成为一组.
    */

    /*
    获取name=btn1的dom
    写代码的时候需要注意这个接口是getElements,多了一个s,这也从命名上说明了返回值是多个.
    */
    var btns = document.getElementsByName("btn1");

    //输出对象的length值,
    console.log(btns.length);//2
    //获取第一个dom对象
    var btn1 = btns[0];
    //输出btn1的value
    console.log(btn1.value);//mybtn1

    /*
    思考一下:
    既然是通过类似数组方式获取数据,那么getElementsByName返回的是Array吗?
    */

    /*
    我们知道js的基础数据类型,是没有数组的.
    这六种类型分别是:
    number,string,boolean,object,function,undefined
    可能大家还能想到null,Array,Date,RegExp等,但是这都不是js的基础数据类型.

    那怎么验证这六种数据格式呢,其实也很简单.
    直接使用typeof运算符就可以得到,注意哦typeof只是一个一元运算符,不是函数.
    */

    console.log(typeof 1);//number
    console.log(typeof "1");//string
    console.log(typeof true);//boolean
    console.log(typeof []);//object
    console.log(typeof {});//object
    console.log(typeof null);//object
    console.log(typeof function(){});//function
    console.log(typeof a);//undefined
    /*
    可以看出使用typeof运算符只能得到6个类型,这就是js的基础数据类型了.
    */

    /*
    回到上面的问题,btns是什么类型呢?
    */

    //使用typeof运算一下
    console.log(typeof btns);//object

    /*
    发现返回的结果也是object,但是数组typeof运算之后也是object.
    所以通过typeof并不能判断.
    那怎么办呢?
    是的天无绝人之路,我们发现js还有一个运算符instanceof.
    instanceof运算符与typeof运算符差不多,用来判定对象的数据类型.
    与typeof不同的是,instanceof能够明确地判定对象是否是某种类型的实例.
    */

    //Array类型
    console.log([] instanceof Array);//true
    //btns呢
    console.log(btns instanceof Array);//false

    /*
    通过判定得知,btns并不是Array类型,只是一个类似array的对象集合.
    我也不知道这样描述对不对,感觉应该跟arguments很类似吧,是js中一种特有的对象,并且拥有length属性.
    提一下instanceof返回值的只有true/false.
    */

    /*
    知识点:
    typeof运算符
    instanceof运算符
    其实instanceof还有更多更有意思用法.
    */

    function testA(){};
    var t = new testA();
    console.log(t instanceof testA);// ?

    function testB(){};
    testB.prototype = new testA();
    var t2 = new testB();
    console.log(testB.prototype instanceof testA);// ?
    console.log(t2 instanceof testA);// ?
    console.log(t2.prototype instanceof testA);// ?
</script>

获取dom对象(2),布布扣,bubuko.com

时间: 2024-12-21 20:46:19

获取dom对象(2)的相关文章

获取dom对象(1)

<html> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> <title>获取dom对象</title> <style> #btn3{ border:1px solid red; } #btn33{ border:1px solid blue; } </style> </

获取dom对象(4)

<html> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> <title>获取dom对象</title> </head> <body> <input id="btn1" class="btn1" type="button&

获取dom对象(3)

<html> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> <title>获取dom对象</title> </head> <body> <input class="btn1" type="button" value="my

extjs 获取Dom对象

对象指页面上的某一部分,如:Input等.我觉得在EXT JS中会有三类基本对象,htmlelement , EXT.Element和CompositeElement .分别解释一下: htmlelement指html页面的各种标记元素,可以用document.getElementById()获得,具有html对象的方法和属性. EXT.Element是最重要的EXT对象,在dom对象的基础上,又包装了很多方法和属性,可以用EXT.get()获取. CompositeElement 是一组EXT

做一个类似JQuery获取DOM对象的$()

在dom操作时,有时根据id获取单个对象.有时根据className获取多个对象.平常可能我们用两个函数来实现这两个功能.不过我将它们整合了一下,目前使用情况良好,函数如下: view source print? 01 // 根据selector获取单个或多个元素, 02 // 获取多个元素时,可以指定元素的tag类型和父元素 03 function $(selector, tag, parent) { 04     var ret = []; 05     06     //没有传递selec

js获取dom对象style样式的值

js获取到的dom对象的style通常是没有值得,因为我们都写在外部文件中,从慕课网上见到讲师封装的一个方法,挺不错.特此记录下来. 1 function getStyle(obj,attr){ 2 if(obj.currentStyle){//兼容IE 3 return obj.currentStyle[attr]; 4 }else{ 5 return getComputedStyle(obj,false)[attr]; 6 } 7 }

JavaScript获取DOM对象的几种方式

1.getElementById() 方法可返回对拥有指定 ID 的第一个对象的引用 2.getElementsByName() 方法可返回带有指定名称的对象的集合 3.getElementsByTagName() 方法可返回带有指定标签名的对象的集合 4.getElementsByClassName() 方法可返回带有指定类名的对象的集合 5.querySelector() 方法可返回匹配指定 CSS 选择器的一个对象的引用 6.querySelectorAll() 方法可返回匹配指定 CSS

js操作DOM对象及怎么获取浏览器宽高

DOM独立于具体的编程语言,通常通过JavaScript访问DOM,不过并不严格要求这样.可以使用任何脚本语言来访问DOM,这要归功于其一致的API.getElementById(id) (document) 获取有指定惟一ID属性值文档中的元素getElementsByTagName_r(name) 返回当前元素中有指定标记名的子元素的数组hasChildNodes() 返回一个布尔值,指示元素是否有子元素getAttribute(name) 返回元素的属性值,属性由name指定有了W3C D

JavaScript之DOM对象的获取

之前我们讲过JavaScript之DOM对象获取的两篇文章,本文是该系列文章之三,点击回顾上两篇文章能更好地理解本文.<JavaScript之DOM对象的获取(一)>: <JavaScript之DOM对象的获取(二)> 接下来,开始讲述本文内容.在文档中,我们还可以通过不同的现象和特征获取DOM对象. 8.document.activeElement 这是一个属性,返回当前获取焦点的元素  效果 9.document.anchors 返回对文档中所有Anchor对象的引用,即获取当