javascript

การเขียน function getElementByClassName

posted on 12 Sep 2007 01:03 by pommatt  in javascript
โดยตัวภาษา JAVA Scriptเองนั้นไม่ได้เตรียมฟังชันนี้ไว้ให้ใช้ในการเข้าถึงelement ในเอกสาร html แล้วเราจะเขียนมันอย่างไงล่ะ มาดูกัน
/*
Written by Jonathan Snook, http://www.snook.ca/jonathan
Add-ons by Robert Nyman, http://www.robertnyman.com
*/

function getElementsByClassName(oElm, strTagName, strClassName){
var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
var arrReturnElements = new Array();
strClassName = strClassName.replace(/-/g, "\-");
var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)");
var oElement;
for(var i=0; i<arrElements.length; i++){
oElement = arrElements[i];
if(oRegExp.test(oElement.className)){
arrReturnElements.push(oElement);
}
}
return (arrReturnElements)
}
ไม่ต้องสนในการทำงานก็แล้วกันนะครับ มันงงนิดหน่อย เอาเป็นว่าเราเอาไปใช้เลยก็แล้วกันนะ แล้วตอนใช้ทำไงล่ะ ดูต่อ สังเกตดีดีครับ ค่าที่คืนเป็น array ของ element
ตอนจะใช้ก็เขียนแบบนี้นะครับ
link_class_
info-links = getElementsByClassName(document, "a", "info-links");
เราก็จะได้ element a ที่มี class เป็น info-links แล้วครับ

การใช้ prototype ร่วมกับ jquery

posted on 29 Oct 2007 15:29 by pommatt  in javascript
<html>
<head>
   <script src="prototype.js"></script>
<script src="jquery.js"></script>
<script>
var $j = jQuery.noConflict();
// Use jQuery via $j(...)
$j(document).ready(function(){
$j("div").hide();
});
// Use Prototype with $(...), etc.
$('someid').style.display = 'none';
</script>
</head>
<body></body>
</html>
 เพราะว่าทั้ง 2 ตัวนี้มีการใช้เครื่องหมาย $ ทั้งคู่ เราเลยทำการหลีกทางให้ prototype ใช้แบบเดิม 
แล้วทำการ set  jqery ตาม code  ตรงที่
จึงจะสามารถใช้ร่วมกันได้ครับ 


edit @ 29 Oct 2007 15:35:18 by Pom & Ja





Untitled Document


jscript = function(){}

jscript.datetime= function(){}
jscript.datetime.isLeapYear = function(inYear) {
if ((inYear % 4 == 0 && !(inYear % 100 == 0)) || inYear % 400 == 0) {
return true;
} else {
return false;
}
} // End isLeapYear().
jscript.datetime.getNumberDaysInMonth = function(inMonth, inYear) {
inMonth = inMonth - 1;
var leap_year = this.isLeapYear(inYear);
if (leap_year) {
leap_year = 1;
} else {
leap_year = 0;
}
if (inMonth == 3 || inMonth == 5 || inMonth == 8 || inMonth == 10) {
return 30;
} else if (inMonth == 1) {
return 28 + leap_year;
} else {
return 31;
}
} // End getNumberDaysInMonth()
function test1(){
var currentTime = new Date()
alert(jscript.datetime.getNumberDaysInMonth(currentTime.getMonth()-1,currentTime.getFullYear()));
}





onclick="test1();">


ลองเอาไปศึกษาดูนะครับ

edit @ 14 Nov 2007 11:21:23 by Pom & Ja

javascript กับการใช้ innerHTML

posted on 30 Oct 2007 10:25 by pommatt  in javascript

javascript กับการใช้ innerHTML นั้นอาจจะมีปัญหาในการใช้บาง browser นะครับ

แนะนำให้ใช้ code ดังตัวอย่างนะครับ

var output = document.getElementById("output");
var textNode = document.createTextNode("ของความที่ต้องการจะใส่");
output.appendChild(textNode);

edit @ 30 Oct 2007 12:32:09 by Pom & Ja

edit @ 13 Nov 2007 21:34:59 by Pom & Ja

Accessing Substrings ใน JAVASCRIPT

posted on 03 Nov 2007 01:11 by pommatt  in javascript

วันนี้นั้งอ่านเล่นๆ แต่เจออะไรที่เราไม่ได้สังเกตมาก่อนเลย ไม่รู่ว่าใครเป็นมั้งแต่ผมเพิ่มจะสังเกตนะคือว่า

การ sub string มา นั้นใน javascript มันมี 2 method ที่คล้ายกันมากเลยครับ

  1. substring( ) method
  2. substr( ) method

function ที่2(สีน้ำเงินนะ) มันเป็นของใหม่ แต่ browser ส่วนใหญ่ support แล้ว

แล้วมันต่างกันอย่างไง ดู code นะ

var myString = "Every good boy does fine.";
var section = myString.substring(0, 10);

// ผลการทำงาน section is now "Every good"

var myString = "Every good boy does fine.";
var section = myString.substr(0, 10);

// ผลการทำงาน section is now "Every good"

อ่าวปรากฎว่าให้ผลการทำงานเหมือนกัน ซะงั้น แต่ผมจะบอกว่า parameter ตัวทีี่2 ของ substring คือตำแหน่งที่ 2 แต่ใน substr คือความยาวนะครับ มันไม่เหมือนกัน

edit @ 13 Nov 2007 21:35:11 by Pom & Ja