归档 2015

jQuery与原生JavaScript选择HTML元素集合对比

通过调用document.getElementsByTagName, document.getElementsByName以及document.getElementsByClassName(部分浏览器不支持),可以返回HTMLCollection对象。表面上,它们与数组很类似,因为它们都包含length属性并且元素都可以通过[index]方式访问。然而,实际上它们并不是数组;诸如push(), slice()与sort()之类的方法不受支持。

考虑下面的HTML文档:

<body>
    <p>Paragraph 1</p>
    <p>Paragraph 2</p>
    <p>Paragraph 3</p>
</body>

我们使用原生JavaScript的getElementsByTagName方法与jQuery选择器分别获取每一个paragraph节点:

var pCollection = document.getElementsByTagName("p");
var pQuery = $("p ...

继续阅读

IE8标准模式table-layout:fixed隐藏列宽度自动调整

在IE8浏览器的标准模式下,样式设置为table-layout:fixed的表格中的列隐藏之后,表格的宽度并不会自动resize,table中各th, td元素宽度保持不变。

而在IE7,以及chrome、firefox等现代浏览器中,表格中各列的宽度会自动重新调整。

一个简单的针对IE8浏览器的问题解决方案如下:

table.style.display = "inline-table";
window.setTimeout(function(){table.style.display = "";},0);

如果使用jQuery,可以通过下面的方式判断当前浏览器是否为IE8:

jQuery.browser.version == 8.0

继续阅读

每月存档

去年

明年