getAttribute和getAttributeNode

阅读次数:1507 次  |  发布时间:2019-02-04T00:00:00Z 

QWrap群有个同学问了个问题:为什么IE7中通过getAttribute获取input的placeholder,结果是null,正常情况下应该是有值的?实 际上这是某些版本IE的bug,在IE10中,F12后把文档模式调成IE7标准,这个bug能复现。这里刚好有个JK之前写的placeholder无依赖版,有I E10的同学可以点开看下bug长什么样。

使用getAttributeNode得到属性节点,再通过nodeValue得到该属性节点的值,就能解决类似的bug。这个方法还可以用来解决我博客之前提到的f orm表单中有<input name="method">元素在IE低版本中通过getAttribute获取不到form.name的bug:


<form name="form1">

        <input name="name" />
    </form>
    <script>
    var form = document.getElementsByTagName('form')[0];
    
    alert(form.getAttribute('name')); /*IE6、7中会得到错误的值*/
    alert(form.getAttributeNode('name').nodeValue);
    </script>
    

getAttributeNode的效率比getAttribute要低一些。如果要获取元素的id,node.id是最快的方法,node.getAttribut e('id')其次,getAttributeNode('id').nodeValue最慢。

实际上,浏览器中与节点Attribute有关的坑有很多,好在主流JS框架都写了大量代码使得各浏览器下都能得到合理的结果。随着低版本IE的逐渐淘汰,这些坑都会 成为历史的。

最近发布的代码:

JavaScript生成随机码 JavaScript 程序  |  6次阅读  | 发布于:2020-08-11T07:07:50Z
switch 简写 JavaScript 程序  |  9次阅读  | 发布于:2020-08-03T23:01:51Z
短路运算 - & JavaScript 程序  |  11次阅读  | 发布于:2020-08-03T23:01:34Z
短路运算 - ||(或) JavaScript 程序  |  8次阅读  | 发布于:2020-08-03T23:01:21Z
使用Boolean过滤数组假值 JavaScript 程序  |  9次阅读  | 发布于:2020-08-03T23:01:06Z
JavaScript动态判断数据类型 JavaScript 程序  |  11次阅读  | 发布于:2020-08-03T23:00:51Z
JavaScript奇偶数判断 JavaScript 程序  |  10次阅读  | 发布于:2020-08-03T23:00:09Z
JavaScript数字取整 JavaScript 程序  |  11次阅读  | 发布于:2020-08-03T22:59:49Z
双位运算符 JavaScript 程序  |  10次阅读  | 发布于:2020-08-03T22:59:19Z
判断小数是否相等 JavaScript 程序  |  10次阅读  | 发布于:2020-08-03T22:58:36Z
字符串转数字 - 使用 + 操作符 JavaScript 程序  |  9次阅读  | 发布于:2020-08-03T22:58:03Z
字符串转数字 - 用*1来转化为数字,实际上是调用.valueOf方法 JavaScript 程序  |  12次阅读  | 发布于:2020-08-03T22:57:17Z
Number的数字千分位格式化 JavaScript 程序  |  13次阅读  | 发布于:2020-08-03T22:56:51Z
转化为字符串 JavaScript 程序  |  12次阅读  | 发布于:2020-08-03T22:55:24Z
url参数反序列化 JavaScript 程序  |  14次阅读  | 发布于:2020-08-03T22:55:12Z
url参数序列化 JavaScript 程序  |  11次阅读  | 发布于:2020-08-03T22:54:44Z
字符串翻转 JavaScript 程序  |  10次阅读  | 发布于:2020-08-03T22:53:00Z
函数异步执行 - Async/Await JavaScript 程序  |  13次阅读  | 发布于:2020-08-03T22:52:40Z
函数异步执行 - Generator JavaScript 程序  |  11次阅读  | 发布于:2020-08-03T22:52:14Z
函数异步执行 - Promise JavaScript 程序  |  13次阅读  | 发布于:2020-08-03T22:51:44Z
函数自执行 JavaScript 程序  |  11次阅读  | 发布于:2020-08-03T22:50:53Z
函数隐式返回值 JavaScript 程序  |  14次阅读  | 发布于:2020-08-03T22:50:06Z
JavaScript对象转化为字符串 JavaScript 程序  |  11次阅读  | 发布于:2020-08-03T22:49:15Z
对象是否相等 JavaScript 程序  |  11次阅读  | 发布于:2020-08-03T08:28:27Z
对象深度拷贝 JavaScript 程序  |  11次阅读  | 发布于:2020-08-03T08:26:50Z
拦截对象 JavaScript 程序  |  11次阅读  | 发布于:2020-08-03T08:26:23Z
拦截对象 JavaScript 程序  |  12次阅读  | 发布于:2020-08-03T08:25:50Z
解构对象属性默认值 JavaScript 程序  |  11次阅读  | 发布于:2020-08-03T08:25:31Z
解构对象属性别名 JavaScript 程序  |  11次阅读  | 发布于:2020-08-03T08:25:21Z
对象嵌套属性解构 JavaScript 程序  |  10次阅读  | 发布于:2020-08-03T08:25:11Z

最多阅读的代码

 getAttribute和getAttributeNode JavaScript 程序  |  1507次阅读
 一种很帅的JS代码书写方式 JavaScript 程序  |  1237次阅读
 Chrome 滚动条冻结现象 JavaScript 程序  |  1216次阅读
 Web弹出类似Android的Toast的信息提示 JavaScript 程序  |  1173次阅读
 通过jQuery发送ajax请求 JavaScript 程序  |  1080次阅读
 js为object动态添加属性 JavaScript 程序  |  1013次阅读
 [小Tip]Webkit下设置hash的一个坑 JavaScript 程序  |  932次阅读
 AMD 的 CommonJS wrapping JavaScript 程序  |  864次阅读
 用Opera Mobile调试手机版网页 JavaScript 程序  |  725次阅读
 在自己的网页中嵌入百度搜索框 JavaScript 程序  |  587次阅读
 Javascript八进制转义字符转中文 JavaScript 程序  |  521次阅读
 jQuery获取Select选择的Text和Value JavaScript 程序  |  507次阅读
 处理字符串的常见操作之截取:substring JavaScript 程序  |  355次阅读
 JavaScript跨平台(兼容各个平台)事件 JavaScript 程序  |  348次阅读
 用JavaScript添加style节点 JavaScript 程序  |  336次阅读
 JavaScript字符与ASCII码间的转换 JavaScript 程序  |  334次阅读
 把一个Array追加到另一个Array上 JavaScript 程序  |  331次阅读
 jquery判断两次点击对象是否是同一对象 JavaScript 程序  |  322次阅读
 如何跳出双重循环 JavaScript 程序  |  321次阅读
 用jQuery把页面上的一个tag换成另一个tag JavaScript 程序  |  321次阅读
 Array迭代器 JavaScript 程序  |  320次阅读
 JavaScript删除数组中的项 delete vs splice JavaScript 程序  |  311次阅读
 合并两个Array并去掉重复项 JavaScript 程序  |  311次阅读
 JavaScript中克隆对象 JavaScript 程序  |  304次阅读
 JavaScript判断浏览器类型及主版本 JavaScript 程序  |  300次阅读
 JavaScript中base64编码 JavaScript 程序  |  296次阅读
 检查一个object是否是jQuery object JavaScript 程序  |  295次阅读
 判断一个对象是否为数组 JavaScript 程序  |  281次阅读
 通过原型继承创建一个新对象 JavaScript 程序  |  281次阅读
 检查一个数是否为整数或浮点数 JavaScript 程序  |  264次阅读