عرض مشاركة واحدة
مشرف قسم ويب 2.0 و البرمجة القياسية
تاريخ التسجيل: Jun 2005-
#4 (permalink)  
Thumbs up

قمت بتعديل النسخه السابقه و أصبحت أكثر قوه بكثير و هذا امثله على طريقه استخدام الكود

المثال الاول : إرجاع عنصر بناءا على ID
كود PHP:
Jselect("#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>
انتظروا نسخه اكثر تعقيدا و أكثر كفاءه و سرعه






__________________
Keepondev | مدونه شديد التخصص فى الجافاسكربت

ماذا يمكننى أن أفعل إذا تعلمت جافاسكريبت ??
Dezology غير متواجد حالياً   قديم 30-03-2008, 11:34 PM
رد مع اقتباس