关于对js属性的测试

众所周知,DOM定义了一个Node接口(该接口由DOM中所有节点类型实现)。常见的nodeType有3种:1(元素节点)、2(属性节点)、3(文本节点)。我们可以通过获取元素来测试:

即:var oDiv=dcoument.getElementById(id); alert(oDiv.nodeType);//1

一切进行得很顺利也返回了自己想要的结果,接下来我们来看一段代码。对于刚接触不久的同学可能会范一种错误。

即:alert(oDiv.id.nodeType);又或者alert(oDiv.getAttribute(‘id‘).nodeType); //浏览器返回undefined

对js了解的人也就知道这样做错了。

正确的应该是alert(oDiv.attributes[0].nodeType);//返回2 索引0是指特性的位置

事实上oDiv.id与oDiv.getAttribute(‘id‘)返回的都是属性值而并非属性,是不是看出端倪了?

假设id="a",那么oDiv.id与oDiv.getAttribute(‘id‘)事实上就相当于"a".nodeType,但是我们真正想获取的是属性节点而不是值。所以oDiv.attributes[0].nodeType才会得到你想要的结果!

时间: 2024-10-10 00:37:53

关于对js属性的测试的相关文章

Stripes视图框架Java对象属性验证和prototype.js Ajax的测试

Stripes视图框架Java对象属性验证,它允许对字段设置是否必须填写,对数字大小进行限制等.我用prototype.js Ajax 将验证后的数据及时地展示出来,下面来看程序. 1.编写User实体类 此用户共三个属性: name.email.age. package com.boonya.stripes.entity;      public class User {              private String name;              private String

js的dom测试及实例代码

js的dom测试及实例代码 一.总结 一句话总结: 1.需要记得 创建 标签和创建文本节点都是document的活:document.createTextNode("Rockets的姚明"); 2.appendChild就是 标签 都可以干的活:document.body.appendChild(hr1); 1.需要记得 创建 标签和创建文本节点都是document的活? var div1 = document.createElement("div"); var t

css3背景颜色渐变属性 兼容性测试基础环境为:windows系统;IE6.0+, Firefox4.0+, Chrome4.0+, Safari4.0+, Opera15.0+

css3背景颜色渐变属性 兼容性测试基础环境为:windows系统:IE6.0+, Firefox4.0+, Chrome4.0+, Safari4.0+, Opera15.0+ 语法: <linear-gradient>:linear-gradient([ <point>,]? <color-stop>[, <color-stop>]+); <point>:[ left | right ]? [ top | bottom ]? || <a

js属性扩展,继承,属性查找

JavaScript 是一种基于原型的面向对象语言 在 javaScript 中,每个对象都有一个它的原型(prototype)对象的引用,这个原型对象又有自己的原型,直到某个对象的原型为 null 为止,这种一级一级的链结构就称为原型链(prototype chain).比如 定义一个object对象var o={},它的原型为Object.prototype,而Object.prototype的原型为null 下面为示例代码 <script type="text/javascript&

Chromimu与JS交互的测试

http://blog.csdn.net/grassdragon/article/details/51659798 Chromimu与JS交互的测试 2016-06-13 18:30 55人阅读 评论(0) 收藏 举报  分类: Chrome 版权声明:本文为博主原创文章,未经博主允许不得转载. 测试一 为解决ExecuteJavascript无法得到返回值的问题,尝试采用JS Dialog和OnJsDialog的方法. 测试结果:可以采用此法传递Js的结果值. JS alter('abc');

初涉node.js做微信测试公众号一路填坑顺便发现个有趣的其他漏洞

[微信测试公众号] 半年前耍着玩搭起来的“微信简历”,是LAMP版的,很皮毛. 微信的官方文档在这 http://mp.weixin.qq.com/wiki/index.php 1.获取access token 2.自定义菜单创建,直接在调试工具上做了 http://mp.weixin.qq.com/debug 3.接入指南(接入自己的网站) 4.接收微信消息,判断消息类型,判断消息关键字(比如来自哪个按钮),响应消息 这里有个小坑,不同类型的消息数据结构略有不同,判空最好做细致点. [V2.0

js属性

1.属性的操作方式 * 1..表示的意思 * 元素.属性名 * 如果属性是单一属性,用点操作符是取不到的,而且还会报错 * 如果想要用点操作符获取带横杠的属性,那首先要把横杠去掉,然后把横杠后面的第一个字母大写 * 2.[] 表示的意思 * 如果属性中带横杠,用[]的方式去操作属性 * []既可以操作符合变量命名规则的属性,也可以操作不符合变量命名规则的属性 <!DOCTYPE html> <html lang="en"> <head> <me

react.js 各种小测试笔记

首先看一个 基础html  至于其中的 js 问价大家去官网下载就好了. <html> <head> <script src="../build/react.js"></script> <script src="../build/react-dom.js"></script> <script src="../build/browser.min.js"></s

《Entity Framework 6 Recipes》中文翻译系列 (28) ------ 第五章 加载实体和导航属性之测试实体是否加载与显式加载关联实体

翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 5-11  测试实体引用或实体集合是否加载 问题 你想测试关联实体或实体集合是否已经加载到上下文中,另外你想使用Code-First来管理数据访问. 解决方案 假设你有如图5-26所示的概念模型 图5-26 一个包含projects,managers和contractors的模型 在Visual Studio中添加一个名为Recipe11的控制台应用,并确保引用了实体框架6的库,NuGet可