| روشهاي ليست كردن المنتهاي يك صفحه |
|
|
|
شما معمولا چجوري المنتهاي يك صفحه رو كنترل ميكنيد ؟
getElementById و getElementsByTagName دو تا تابع خوب هستند براي اين كار اما باز هم دست آدم خيلي بسته هست . فكر كنيد چند تا فيلد متني داريد كه نياز داريد گروه بندي بشن و مثلا در يك لحظه 10 تا شو disable كنيد ! استفاده از getElementsByTagName باعث ميشه همه فيلدهاي TEXT غير فعال بشن و استفاده از getElementById هم ميتونه خيلي وقت گير باشه . در صورتي كه فرم شما قابليت اضافه كردن فيلد رو هم داشته باشه و از قبل مشخص نباشه ID فيلد چيه اونوقت ديگه هيچي . البته بازم راه داره اما خيلي سخت ميشه . خوب به نظر شما چرا تابعي با نام getElementsByClass وجود نداره ؟ فكرشو كنيد ! كارهاي زيادي ميشه انجام داد . خوب اشكال نداره چون يكي از دوستان اين تابع رو به صورت دستي ايجاد كرده . البته به صورت متد از كلاس document نبايد استفاده بشه بلكه به صورت يك تابع معولي . در زير كد اين كلاس رو ميبينيم : <script language="javascript"> function getElementsByClass( searchClass, domNode, tagName) { if (domNode == null) domNode = document; if (tagName == null) tagName = '*'; var el = new Array(); var tags = domNode.getElementsByTagName(tagName); var tcl = " "+searchClass+" "; for(i=0,j=0; i<tags.length; i++) { var test = " " + tags[i].className + " "; if (test.indexOf(tcl) != -1) el[j++] = tags[i]; } return el; } </script>نكته : نمونه هاي ديگري هم هستند كه تفاوت زيادي با اين كد ندارند : http://javascript.internet.com/snippets/getelementsbyclass.html http://www.dustindiaz.com/getelementsbyclass/ http://domscripting.com/blog/display/18 |
| < بعد | قبل > |
|---|