ciao,
sto scrivendo un paio di funzioni per navigare il DOM in maniera semplice in uno script Greasemonkey, es:
var LastestNewsLinks = $('myListId').byTag('LI')[0].byClass('new');
Lo so che esistono jQuery e Prototype e compagnia bella, ma mi serviva uno script molto meno elaborato.
Le funzioni funzionano se chiamate individualmente, ma se concatenate presentano dei problemi.
Nell'esempio sopra indicato, la funzione 'byTag' colleziona correttamente i tags, ma restituisce "undefined" anzichè un array di elementi... Qualcuno sa dirmi perchè??
Grazie!
----
Codice PHP:(function(){
function byId(tagId){
return document.getElementById(tagId);
}
function byTag(tagName,elm){
var elm = elm || document;
var returnElements = [];
var elements = (tagName == "*" && elm.all)? elm.all :
elm.getElementsByTagName(tagName);
var length = elements.length;
for(var i=0; i<length; i++){
returnElements.push($(elements[i]));
}
return returnElements;
}
function byClass(className, elm, tag){
var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
var tag = tag || "*";
var elm = elm || document;
var elements = byTag(tag,elm);
var returnElements = [];
var current;
var length = elements.length;
for(var i=0; i<length; i++){
current = elements[i];
if(testClass.test(current.className)){
returnElements.push($(current));
}
}
return returnElements;
}
function $(q){
var e;
e=(typeof q=='string')?byId(q):q;
e.byTag=function(x){
byTag(x,e);
}
e.byClass=function(x){
byClass(x,e);
}
return e;
};
})();

Rispondi quotando