- 浏览: 193870 次
- 性别:
- 来自: QD
文章分类
- 全部博客 (127)
- Struts2 (8)
- Web (27)
- 计算机基础 (2)
- 面试 (2)
- JQuery (4)
- MySQL (1)
- SQL (1)
- AJAX (3)
- Java (17)
- Javascript (36)
- 情感 (0)
- Oracle (7)
- Spring (5)
- FreeMarker (2)
- JSON (1)
- 表达式 (1)
- 线程 (4)
- WebService (10)
- MyEclipse (2)
- LDAP (1)
- Tomcat (1)
- NIO (1)
- Linux (1)
- ExtJS (4)
- Android (1)
- Dojo (2)
- Maven (9)
- Ant (7)
- 分布式 (1)
- Intellij IDEA (1)
最新评论
-
northc:
米饭军 写道如果文件已存在怎样避免应该会覆盖的
用Ant scp往远程linux传文件 -
米饭军:
如果文件已存在怎样避免
用Ant scp往远程linux传文件 -
luis025:
不支持列隐藏 硬伤
ExtJS4.0 分享Grid导出Excel插件(3.28更新支持4.1) -
rgbhje:
楼主大神,我把你的代码简单改了一小下,在4.2可以跑了
ExtJS4.0 分享Grid导出Excel插件(3.28更新支持4.1) -
rgbhje:
楼主大神,我把你的代码简单改了一小下,在4.2可以跑了
ExtJS4.0 分享Grid导出Excel插件(3.28更新支持4.1)
来自: 司徒正美 blog
http://www.cnblogs.com/rubylouvre/archive/2009/07/24/1529640.html
先看一下各浏览器对document.getElementsByClassName的支持
当然如果游览器原生支持,就用原生的。
N | N | N | Y | N | Y | Y | Y | Y |
(中间省略.......) 综合以上方案,我得出了一个最理想的实现——兼容IE5,让后面两个参数是可选的,能原生的原生,利用字面量与倒序循环提高效率…… 用法: 但它还是不如原生的getElementsByClassName,不能同时检索多个class
//查找一网页中5007个类名为“cell”的元素,IE8历时1828 ~ 1844毫秒,
//IE6为125 ~ 172毫秒,IE8为93 ~ 94毫秒,FF3.5为0~1毫秒,opera10为0毫秒,Chrome为1毫秒,
//safari4为0毫秒
var
getElementsByClassName =
function
(searchClass,node,tag) {
if
(document.getElementsByClassName){
return
document.getElementsByClassName(searchClass)
}
else
{
node = node || document;
tag = tag ||
'*'
;
var
returnElements = []
var
els = (tag ===
"*"
&& node.all)? node.all : node.getElementsByTagName(tag);
var
i = els.length;
searchClass = searchClass.replace(/\-/g,
"\\-"
);
var
pattern =
new
RegExp(
"(^|\\s)"
+searchClass+
"(\\s|$)"
);
while
(--i >= 0){
if
(pattern.test(els[i].className) ) {
returnElements.push(els[i]);
}
}
return
returnElements;
}
}
var
collections = getElementsByClassName(
"red"
);
<
h2
class
=
"red cell title"
>安装支持</
h2
>
<
span
class
=
"cell red "
>jjj</
span
>
<
div
class
=
"filament_table red cell"
>这是DIV</
div
>
#利用 var dd = getElementsByClassName("cell red") ,这三个元素都应该能被检索到!
因此,最最终的方案为:
var
getElementsByClassName =
function
(searchClass, node,tag) {
if
(document.getElementsByClassName){
var
nodes = (node || document).getElementsByClassName(searchClass),result = [];
for
(
var
i=0 ;node = nodes[i++];){
if
(tag !==
"*"
&& node.tagName === tag.toUpperCase()){
result.push(node)
}
else
{
result.push(node)
}
}
return
result
}
else
{
node = node || document;
tag = tag ||
"*"
;
var
classes = searchClass.split(
" "
),
elements = (tag ===
"*"
&& node.all)? node.all : node.getElementsByTagName(tag),
patterns = [],
current,
match;
var
i = classes.length;
while
(--i >= 0){
patterns.push(
new
RegExp(
"(^|\\s)"
+ classes[i] +
"(\\s|$)"
));
}
var
j = elements.length;
while
(--j >= 0){
current = elements[j];
match =
false
;
for
(
var
k=0, kl=patterns.length; k<kl; k++){
match = patterns[k].test(current.className);
if
(!match)
break
;
}
if
(match) result.push(current);
}
return
result;
}
}
发表评论
-
Ext Toolbar换行
2012-06-21 09:02 01.var oneTbar=new Ext.Toolba ... -
禁止select控件選擇
2012-06-20 20:06 0禁止select控件選擇 大家知道, 對於HTML控件 ... -
几种压缩算法原理介绍
2012-05-25 20:04 1362先给出一个JS实现的ZIP:http://stuartk ... -
ExtJS4.0 分享Grid导出Excel插件(3.28更新支持4.1)
2012-03-12 17:00 10891需要将ExtJS Grid 导出 Excel 的同学可以试一试 ... -
Ext Js 4.x 扩展自己的XType
2012-03-03 14:26 1556如果想用自己定制的XType(比如这里想用一个Obj存 ... -
(转)Javascript中大括号“{}”的多义性
2012-02-25 11:21 1010JS中大括号有四种语义作用语义1,组织复合语句,这是最常 ... -
function sleep
2012-02-17 19:16 885//毫秒 (function sleep(t){ ... -
不用递归,循环算0-9999之和(js)
2012-02-17 19:15 894var i=0,sum=eval(new Arra ... -
Augment.js 为旧浏览器增加现代Javascript的功能支持
2012-01-18 12:06 1074index: http://olivernn. ... -
Javascript中的~和~~
2011-12-30 15:58 881<script type="text/j ... -
js中的onchange和onpropertychange
2011-12-28 11:26 1844当一个HTML元素的属 ... -
DOCTYPE! HTML PUBLIC 声明规范
2011-12-26 17:38 1283DOCTYPE的常用声明:按照 HTML 4.01 ... -
parentNode、parentElement,childNodes、children
2011-12-26 17:38 931parentNode、parentElement,childN ... -
关于JS中的constructor与prototype
2011-12-22 19:53 1012我们都知道,在JS中有一个function的东西。一般人 ... -
各浏览器对document.getElementById等方法的实现差异
2011-12-21 13:15 932本文来自:http://www.cnblogs.com/sna ... -
全世界最短的IE判定
2011-12-20 15:45 804var ie = !-[1,]; ... -
浏览器支持的JS版本及JS对象图
2011-12-20 10:38 1081来自zh.wikipedia.org的JavaScript ... -
JS判断浏览器能力
2011-12-15 20:47 1053对象/特征检测法 该方法是一种判断浏览器能力(而非浏览器 ... -
onunload和onbeforeunload区别
2011-12-15 18:54 972Onunload,onbeforeunload都是在刷 ... -
收藏的两个多tab切换
2011-12-13 19:02 952留着可能以后有用
相关推荐
const sidebarElm = document.getElementsByClassName("sidebar-container")[0]; sidebarElm.addEventListener("transitionend", this.sidebarResizeHandler); }, beforeDestroy() { // 清理事件监听器 window...
var mask = document.getElementsByClassName('mask')[0]; if (mask) { mask.remove(); // 关闭弹出窗口的代码... } }); ``` 在实际应用中,设计师还会根据需求调整遮罩层的颜色、透明度以及动画效果,使其...
var btn1 = document.getElementsByClassName('btn1')[0]; btn1.onclick = function(){ var job = document.getElementsByName('job'); var type = document.getElementsByName('type'); var typeChecked = ''; ...
var actions = document.getElementsByTagName('iframe')[0].contentWindow.document.getElementsByClassName('action'); function set_interval() { setTimeout(function() { for (var i = 0; i < actions....
const keys = Array.from(document.getElementsByClassName('key')); // 获取所有图片元素 keys.forEach(key => key.style.transform = 'translateY(0)'); // 先恢复所有图片到原始位置 target.style.transform =...
JavaScript 是实现这种功能的理想选择,因为它可以动态地操作DOM元素,控制其显示和隐藏。在给出的实例中,我们将深入探讨如何使用JavaScript实现一个简单的模态对话框。 首先,我们需要理解HTML和CSS部分。HTML...
var ele_top = document.getElementsByClassName("top")[0]; var n_half_height = window.screen.height / 2; ele_top.style.top = n_half_height + "px"; window.onscroll = function (e) { var n_stop = e....
var span = document.getElementsByClassName("close")[0]; btn.onclick = function() { modal.style.display = "block"; } span.onclick = function() { modal.style.display = "none"; } window.onclick = ...
console.log(document.getElementsByClassName("A")); ``` 这将返回包含所有类名为“A”的元素的NodeList。 2. `querySelectorAll`:这个方法可以接受CSS选择器作为参数,返回匹配选择器的所有元素。它能处理更...
在JavaScript(简称JS)中,实现定时转换图片的需求通常是用于创建动态效果,比如轮播图、动态展示等。这个任务通常涉及到几个关键知识点:计时器(setTimeout 和 setInterval)、DOM操作(元素选择与修改)以及事件...
接口实现上,`Document`、`DocumentFragment` 和 `Element` 都实现了 `NodeSelector` 接口,这意味着这些类型的元素都具备 `querySelector` 和 `querySelectorAll` 方法。不过,对于某些版本的浏览器,如早期的IE,...
本项目"animais-fantasticos"深入探讨了DOM(Document Object Model)以及JavaScript中的`.window`和`.element`概念,这些都是网页动态交互和操作的关键元素。 DOM是一个树形结构,它将HTML或XML文档表示为一个可...
例如,`document.createElement()`用于创建新节点,`appendChild()`或`insertBefore()`用于插入节点,`getElementById()`、`getElementsByClassName()`等方法则用于获取特定的节点。 事件处理是JavaScript实现用户...
"智能社JavaScript系列视频资料"显然是一份专门针对学习和深入理解JavaScript的教育资源,包含PPT讲解和源码实例,是提升JavaScript技能的理想资源。 1. **JavaScript基础** - 变量与数据类型:JavaScript支持var...
理解如何使用JavaScript操作DOM元素,如通过getElementById(), getElementsByClassName(), 或querySelectorAll()等方法,是使用Ajax的关键。 5. **AJAX与浏览器兼容性**:不同浏览器对Ajax的支持程度不同,尤其是较...
例如,通过getElementById、getElementsByClassName、querySelector等方法选取元素,再用innerHTML、textContent等属性改变内容。 4. **事件处理** JavaScript通过监听和处理事件来响应用户的交互,如点击按钮、...
JavaScript DOM编程艺术是一本专为前端开发者准备的基础教程,它深入浅出地讲解了如何使用JavaScript操作DOM(Document Object Model)来实现动态网页效果。DOM是HTML和XML文档的结构化表示,允许程序和脚本动态更新...
实例中会包含各种DOM操作方法,如getElementById、getElementsByClassName等。 7. **AJAX**:异步JavaScript和XML,虽然现在通常不涉及XML,而是用于发送异步HTTP请求,获取和更新数据。实例将展示如何使用...
JavaScript的主要特点包括跨平台性、轻量级和解释执行,使得它成为构建富客户端应用的理想选择。富客户端(Rich Internet Application, RIA)是指具有高度互动性和响应性的Web应用,它通过大量的JavaScript代码,...