1.CSS相关
对于一个相同功能的样式,有两种写法:
(1.1)减少了选择器,但需要多写一个width
.className1 { width: 100px; height: 50px }
.className2 { width: 100px; height: 200px }
(1.2)选择器多了,但减少了width的定义
.className1, .className2 { width: 100px }
.className1 { height: 50px }
.className2 { height: 200px }
请问(1.1)、(1.2)两种写法,哪一种更可取呢?原因是?2.Sizzle和jQuery选择器相关
像$('input[type="checkbox"]')这样的选择器,
(2.1)它的原理是不是先通过getElementsByTagNam获取
到所有的input,再通过getAttribute()判断
这些input是否具有checkbox属性?
(2.2)如果这些要选择的元素都具有.chkbox类名,
那么$('.chkbox')和$('input[type="checkbox"]')
比(尤其是在IE <= 8下),大部分情况下,
或平均来说,哪个更高效?

解决方案 »

  1.   

    抱歉,有些描述错误。
    getElementsByTagNam是指getElementsByTagName(),
    checkbox属性是指type="checkbox"
      

  2.   

    1.第一种明显直观且便于后期维护修改,比如后面升级时class1和class2的width可能就不相等了
    2.想搞清楚看看源代码,猜测是没用的;还有前端不很注重代码执行效率,加载速度才是最重要的
      

  3.   

    如果就这些css代码,按照css压缩规则,明显第一个好点,如果有许多同样的样式,只有1,2个样式不一样,采用第二种(2.1)是的(2.2)input.chkbox应该和$('input[type="checkbox"]')等效,$('.chkbox')这个最差
      

  4.   

    1 , 1.2 好些,把共用放一起便维护
    2, input[type="checkbox"] , .chkbox  都可以用document.querySelectorAll 来取,ie8下input[type="checkbox"]  可先取 所有 input 再取 .check 要取所有的再找,
      

  5.   

    1.  把共性的属性提炼出来 方便维护
    2.  遍历找出某个dom 对性能的损耗  影响不大  可以不做考虑    插入dom才是对性能最大的考验