sizzle分析记录:getAttribute和getAttributeNode

简介:

部分IE游览器下无法通过getAttribute取值?

<form name="aaron">  
  <input type="text" name="aaron"/>  
</form>
alert(form.getAttribute('name')); IE6、7中错误
alert(form.getAttributeNode('name').nodeValue);

看看jQ的解决方案

能力判断

support.attributes = assert(function( div ) {
    div.className = "i"; //设置一个属性
    return !div.getAttribute("className");
});

处理

复制代码
Sizzle.attr = function( elem, name ) {

    return val !== undefined ?
        val :
        support.attributes || !documentIsHTML ?
            elem.getAttribute( name ) :
            (val = elem.getAttributeNode(name)) && val.specified ?
                val.value :
                null;
};
复制代码

使用getAttributeNode得到属性节点,再通过nodeValue得到该属性节点的值

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


本文转自艾伦 Aaron博客园博客,原文链接:http://www.cnblogs.com/aaronjs/p/3837082.html,如需转载请自行联系原作者

相关文章
|
缓存 NoSQL 架构师
Redis 三种批量查询技巧,高并发场景下的利器
在高并发场景下,巧妙地利用缓存批量查询技巧能够显著提高系统性能。 在笔者看来,熟练掌握细粒度的缓存使用是每位架构师必备的技能。因此,在本文中,我们将深入探讨 Redis 中批量查询的一些技巧,希望能够给你带来一些启发。
2561 0
Redis 三种批量查询技巧,高并发场景下的利器
|
11月前
|
缓存 监控 Java
在使用 Glide 加载 Gif 动画时避免内存泄漏的方法
【10月更文挑战第20天】在使用 Glide 加载 Gif 动画时,避免内存泄漏是非常重要的。通过及时取消加载请求、正确处理生命周期、使用弱引用、清理缓存和避免重复加载等方法,可以有效地避免内存泄漏问题。同时,定期进行监控和检测,确保应用的性能和稳定性。需要在实际开发中不断积累经验,根据具体情况灵活运用这些方法,以保障应用的良好运行。
|
11月前
|
Java 应用服务中间件 测试技术
Java21虚拟线程:我的锁去哪儿了?
【10月更文挑战第8天】
233 0
|
10月前
|
关系型数据库 MySQL Docker
docker环境下mysql镜像启动后权限更改问题的解决
在Docker环境下运行MySQL容器时,权限问题是一个常见的困扰。通过正确设置目录和文件的权限,可以确保MySQL容器顺利启动并正常运行。本文提供了多种解决方案,包括在主机上设置正确的权限、使用Dockerfile和Docker Compose进行配置、在容器启动后手动更改权限以及使用 `init`脚本自动更改权限。根据实际情况选择合适的方法,可以有效解决MySQL容器启动后的权限问题。希望本文对您在Docker环境下运行MySQL容器有所帮助。
1793 1
40zTree - 保持展开单一路径
40zTree - 保持展开单一路径
93 0
|
PHP Apache 应用服务中间件
|
Prometheus 网络协议 NoSQL
还不会Traefik?看这篇文章就够了!(二)
还不会Traefik?看这篇文章就够了!
还不会Traefik?看这篇文章就够了!(二)
|
弹性计算 运维 安全
阿里云ecs使用体验
整了台服务器部署项目上线
阿里云ecs使用体验
|
SQL 关系型数据库 MySQL
Mysql编码|学习笔记
快速学习Mysql编码
118 0

热门文章

最新文章