walkDOM
function walkTheDOM(node, func) {
func(node);
node = node.firstChild;
while (node) {
walkTheDOM(node, func);
node = node.nextSibling;
}
}
getElementsByClassName
function getElementsByClassName(className) {
var results = [];
walkTheDOM(document.body, function (node) {
var a, c = node.className, i;
if (c) {
a = c.split(' ');
for (i = 0; i < a.length; i += 1) {
if (a[i] === className) {
results.push(node);
break;
}
}
}
});
return results;
}
第六章
6.5 判断是不是数组
var is array = function (value) {
return value &&
typeof value.splice === 'function' &&
typeof value.length=== 'number' &&
typeof value === 'object' &&
! (value.propertyIsEnumerable ('length'));
};
写一个Reduce
Array. method ('reduce', function(f,value) {
var i;
for (i=0;i<this.length; i +=1) {
value = f(this [i], value);
}
return value;
})
第七章 正则表达式
7.1 匹配url的正则
var parse_url =/^ (?: ([A-Za-z]+) :)? (/{0,3}) ( [0-9.-A-Za-z]+)(?:: (d+))? (?:/([^?#]*))?(?:? ([^#]*))? (?:#(.*))?$/;
var url ="http://www.ora.com: 80/goodparts?q#fragment";
匹配数字的reg
var parse_number =/^-?d+(?:.d*)? (?:e [+-]?dt)?S/i;
var test= function (num) {
document.writeln(parse number.test (num) );
};
true test ("1");
false test ('number');
true test('98.6");
false test ('132.21.86.100');
true test ('123.45E-67');
false test ('123.45D-67');