قمت بتعديل النسخه السابقه و أصبحت أكثر قوه بكثير و هذا امثله على طريقه استخدام الكود
المثال الاول : إرجاع عنصر بناءا على ID
المثال الثانى : إرجاع عنصر بناء على class
كود PHP:
Jselect(".class")
المثال الثالث : ارجاع عنصر بناءا على ID له class
كود PHP:
Jselect("#id.class")
المثال الرابع : ارجاع عنصر داخل عنصر
كود PHP:
Jselect("#id",".class")
Jselect(".class","#id")
Jselect("#id.class",".class");
Jselect("#id.class","#id")
هذا ال source code الذى كتبته و أنا مستعد لشرح اى شىء لا تفهموه فيه
كود HTML:
<script type="text/javascript" >
// simple CSS selector by (Dezology) Mostafa Farghaly @ swalif.net/softs
//@expr is the selector expression ex: #id , #id.class , .class
//@context is where search begin it's document by default
function Jselect(expr,context){
var context = context?Jselect(context):false|| document;
var regex = [];
regex["id-selector"]=/^#(\w+)$/g; // match #id
regex["class-selector"]=/^\.(\w+)$/g; // match .class
regex["idClass-selector"]=/^#(\w+)\.(\w+)$/g; // match #id.class
//====== return element by ID ======//
var byId = function(id){
return document.getElementById(id)
}
//====== return element by Class ======//
var byClass = function(clsName){
var matechedElements = []; // array of the matched elemetns
var allElem = context.getElementsByTagName("*");
for(var i=0 ; i<allElem.length;++i){
// regular expression that match the wanted class from space separated values
var regex = new RegExp("(^|\\s)" + clsName + "(\\s|$)");
if(allElem[i].className && regex.test(allElem[i].className)){
matechedElements.push(allElem[i])
}
}
return matechedElements;
}
//=====iterate through the expressions =====//
if(regex["id-selector"].test(expr)){
return byId(RegExp.$1);
}
else if(regex["class-selector"].test(expr)){
return byClass(RegExp.$1);
}
else if(regex["idClass-selector"].test(expr)){
var elem = byId(RegExp.$1);
var regex = new RegExp("(^|\\s)" + RegExp.$2 + "(\\s|$)");
if(regex.test(elem.className)){
return elem;
}
}
}
</script>
انتظروا نسخه اكثر تعقيدا و أكثر كفاءه و سرعه