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 แล้วครับ
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
posted on 29 Oct 2007 16:19 by pommatt in javascript
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
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
posted on 03 Nov 2007 01:11 by pommatt in javascript
วันนี้นั้งอ่านเล่นๆ แต่เจออะไรที่เราไม่ได้สังเกตมาก่อนเลย ไม่รู่ว่าใครเป็นมั้งแต่ผมเพิ่มจะสังเกตนะคือว่า
การ sub string มา นั้นใน javascript มันมี 2 method ที่คล้ายกันมากเลยครับ
- substring( ) method
- 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