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最慢。

sizzle分析记录:getAttribute和getAttributeNode

时间: 2024-07-30 20:40:07

sizzle分析记录:getAttribute和getAttributeNode的相关文章

sizzle分析记录:属性选择器

源码部分 通过Sizzle.attr匹配出值 然后通过表达式刷选计算 "ATTR": function( name, operator, check ) { return function( elem ) { var result = Sizzle.attr( elem, name ); if ( result == null ) { return operator === "!="; } if ( !operator ) { return true; } resu

sizzle分析记录:关于querySelectorAll兼容问题

querySelector和querySelectorAll是W3C提供的新的查询接口 目前几乎主流浏览器均支持了他们.包括 IE8(含) 以上版本. Firefox. Chrome.Safari.Opera. 万能的sizzle在高版本的浏览器中复杂的选择器尽量走querySelectorAll,前提是这个匹配的节点没有兼容问题 从IE8开始虽然支持querySelectorAll的API,但是会有各式各样的BUG,所以sizzle拿rbuggyQSA用来记录这个BUG问题 if ( supp

sizzle分析记录:分解流程

<form> <label>Name:</label> <input name="name" /> <fieldset> <label>Newsletter:</label> <div name="newsletter" /><p>1<p</div> <div name="letter" /><p nam

sizzle分析记录: 自定义伪类选择器

可见性 :hidden :visible 隐藏对象没有宽高,前提是用display:none处理的 jQuery.expr.filters.hidden = function( elem ) { // Support: Opera <= 12.12 // Opera reports offsetWidths and offsetHeights less than zero on some elements return elem.offsetWidth <= 0 && elem

日志分析记录

set() - set()  去掉公共部分 set存放的元素不能重复 list存放的元素可以重复 logging 模块 定义日志格式 import logging logging.debug('This is debug message') logging.info('This is info message') logging.warning('This is warning message') 屏幕上打印: WARNING:root:This is warning message 级别最高

struts1.2源码分析记录

struts思路:1.struts使用的三板斧ActionForm.DispatchAction.ActionMapping2.主要关注点:Form.Action.Forward3.页面如何发送请求参数,后台如何截取.do请求,如何将参数组装成Form,在Action中如何操作Form,如何查找目标页面,如何将Form返回到页面,页面如何通过标签读取Form属性 框架主流程:Struts所有的请求都要走DispatchAction类的public ActionForward execute(Ac

【动态调试so文件】 + AliCrackMe_2分析记录

时不时要用到动态调试so, 但总是不记得,这里记录一下. 步骤很简单,就是参考看雪论坛,非虫大哥的介绍. http://www.kanxue.com/bbs/showthread.php?p=1111471 调试so必须可以. Debugger→Attach→Remote ArmLinux/Android debugger Attach进程 CTRL+S找so 计算偏移找地址,F2下断后就OK 触发断点 以及luyangliu 的http://bbs.pediy.com/showthread.p

转载:PostgreSQL的系统函数分析记录

转载来自:http://www.codeweblog.com/postgresql%E7%9A%84%E7%B3%BB%E7%BB%9F%E5%87%BD%E6%95 PostgreSQL数据库中有许多内部函数,这次对系统表pg_proc以及函数代码进行分析记录(这里是针对9.3进行介绍的). 一.数据库系统表pg_proc 数据库中所有内部函数信息都存储在系统表pg_proc. 内部函数都是在编译之前写好并存储在pg_proc.h文件中. 下面来看一下pg_proc的表结构,首先是看源码中的结

256模板官网站点SEO优化分析记录

一直在做SEO网站优化工作,网站搭建好后也没没有做过官网优化的记录,今天有空余时间查询一下记录网站现在的状况. 通过站长工具进行分析,织梦模板的关键字一致很稳定,也没有上升的趋势,看来是要进行分析做一下该站点的排名了. 现在的状况如下: 1.百度权重为1,360搜索为零. 2.域名年龄注册时间比较久了,有七年的时间了,但注册下来也并没有马上建站,放了也大概好几年. 3.收录不算少,但是反向链接几乎没有几个,看来要加强一下外部链接的建设了. 收录看上去还行,但收录速度不是很快,发这篇文章的目的也是