Posts Tagged ‘JavaScript’
2011年07月04日
coffee-scriptをMacportsを使ってインストールし、TextMateのcoffee-script bundleでコンパイルするメモです。
注意すべきなのはたとえターミナルでcoffeeが実行できても、TextMateはPATHをインクルードしないので(インクルードしているのは/usr/binらしい)、/usr/binにcoffeeのシンボリックを作る必要があります。
またcoffee-scriptをコンパイルするにはnodejsとnpm(Node Package Manager)が前提条件となるため、それらのインストールも必要です。
# don't forget to update your port tree first
sudo port selfupdate
# install coffee script using macport
sudo port install nodejs
node -v
# install npm - the Node Package Manager
git clone http://github.com/isaacs/npm.git
cd npm
sudo make install
npm -v
# now install coffee-script!
sudo npm install -g coffee-script
coffee -v
# because TextMate doesn't inherit your regular PATH
# you need to set a symbol link to /usr/bin
# so that you can run coffee in your textmate
which node
/opt/local/bin/node
which coffee
/opt/local/bin/coffee
cd /usr/bin
sudo ln -s /opt/local/bin/node
sudo ln -s /opt/local/bin/coffee
# install textmate coffee-script bundle
mkdir -p ~/Library/Application\ Support/TextMate/Bundles
cd ~/Library/Application\ Support/TextMate/Bundles
git clone git://github.com/jashkenas/coffee-script-tmbundle CoffeeScript.tmbundle
# now you can use command + B to compile and display javascript in your textmate!
これでtextmateでcommand + Bでコンパイル後のJavascriptが表示できるようになります!
Tags: CoffeeScript, JavaScript, macport, nodejs, 環境構築
Posted in CoffeeScript | 1 Comment »
2010年12月01日
jQueryのappendやafterは全部DOM Manipulation、つまりDOM操作のメソッドであります。どう違うかは下記ソースコードを見るのが一番速いでしょう。
$('<span>span text</span>').appendTo(".chapter");
<div class="chapter"> ... </div>
組み立てた結果:
<div class="chapter">
...
<span>span text</span>
</div>
append、appendToは最後の子供要素として、prepend、prependToは最初の子供要素として挿入する感じです。
$('<span>span text</span>').insertAfter(".chapter");
組み立てた結果:
<div class="chapter">
...
<span>span text</span>
</div>
$('some text').appendTo(".chapter");
htmlに何の変更もないです。
Tags: JavaScript, jQuery
Posted in jQuery | No Comments »
2010年11月29日
/**
* 数値を日本円表現にフォーマット。
* 例:12345 -> 123,45
*
*/
num2Currency = function(obj){
// 画面項目の値
var str=obj.value;
var num = new String(str).replace(/,/g/"");
while(num != (num =num.replace(/^(-?\d+)(\d{3})/,"$1,$2")));
obj.value = num;
}
/**
* 日本円表現を数値にフォーマット。
* 例:123,45 -> 12345
*
*/
currency2Num = function(obj){
var str=obj.value;
var num = str.replace(/,/g,"");
obj.value = num;
}
Tags: JavaScript, Snippet
Posted in JavaScript | No Comments »
2010年05月17日
elem指定とID指定のjQueryセレクタパフォーマンス実験を行いました。
“先にJavascriptでelementをとってそれをjQueryの$セレクタに囲むやつ”
vs
“直接jQueryのidセレクタでとるやつ”。
コードで言うと
$(document.getElementById(“foo”))
vs
$(“#foo”)
普通前者が勝だろうと思うだろう、
どれくらいの差かを確認したくて。
一万回ループでとった結果です。
- IE8: 187 vs 344
- IE6: 203 vs 453
- Firefox×(3.6.3): 21 vs 63
- Chrome(4.1.xx): 9 vs 39
デモページへ
var t0 = new Date();
for (var i=0; i<10000; i++){
$(document.getElementById("foo"));
}
var t1 = new Date();
for (var i=0; i<10000; i++){
$("#foo");
}
var t2 = new Date();
alert("直接elementを渡す時間は:" + (t1-t0) + " , ID指定でとる時間は:"+ (t2-t1));
Tags: JavaScript, jQuery, Performance
Posted in jQuery | 1 Comment »
2010年03月10日
jQuery 1.4.2ではこれは治ったようです。
jQuery最新版をお使いの方は下記のようなバグはもう発生しません。
※jQuery 1.3.2で発生する問題※
<select>
<option id="foo"> </option>
<option>11</option>
<option>22</option>
</select>
<tr id="bar"> </tr>
var optionText = $("#foo").text();
// firefoxは0、IEは1
alert("select optionタグの をtrimした後のlength: " + $.trim(optionText).length);
var trText = $("#bar").text();
// firefoxは0、IEも0!
alert("trタグの をtrimした後のlength: " + $.trim(trText).length);
selectのoptionタグのテキストにある“ ”に
$.trimをかけて見ると
Firefoxはちゃんとtrimしてlengthが0になったが、
IEはtrimできずlengthが1のままです。
しかしtrタグのテキストにある” ”をtrimすると
IEも正しくtrimしてlengthが0になるんです。。。
jQuery最新版(1.4.2)を使うDEMO
Tags: JavaScript, jQuery
Posted in JavaScript, jQuery | No Comments »
2010年03月08日
今まで全然気付かなかったんです、
JavascriptのArrayにはdeleteみたいなAPIがないことに。
配列の要素をindex指定で削除したい場合は代わりにsplice関数を使います。
とほほからのレファレンスでは
array.splice(start, n, e1, e2, …) (N4)
0 から数えて、start 番目から n 個の要素を削除し、その代わりに e1, e2, …を値とする要素を埋め込みます。戻り値は JavaScript のバージョンによって異なります。
var xx = new Array("A", "B", "C", "D", "E", "F", "G");
xx.splice(2, 3, "c", "d", "e"); // "C", "D", "E" が小文字になります
myArray.splice(index, 1);
indexは削除する要素のindex、1はこの一つだけを削除する意味で
他のパラメータはいらないです。
またsplice後は配列そのものが変更されます。
Tags: JavaScript
Posted in JavaScript | No Comments »
2010年03月02日
スクロールバーを最下部に移動するJavascriptです。
普通のJavascriptで書くと
function go_bottom(targetId){
var obj = document.getElementById(targetId);
if(!obj) return;
obj.scrollTop = obj.scrollHeight;
}
完全にjQueryで書くとこんな感じ
function go_bottom(targetId){
var $obj = $("#" + targetId);
if($obj.length == 0) return;
$obj.scrollTop($obj[0].scrollHeight);
}
これ以外はhiddenのinput項目を最下部に置いといて、
それをfocusするような技もありけど、、
Tags: JavaScript, Snippet
Posted in JavaScript | 1 Comment »
2010年02月22日
面白いかと思ったのでメモしときます。
var rows = document.getElementsByTagName('tr');
for( var i = 0; i < rows.length; i++ ) {
rows[i].className = 'newclass';
rows[i].style.color = 'red';
...
}
var rows = document.getElementsByTagName('tr');
for( var i = 0, row; row = rows[i]; i++ ) {
row.className = 'newclass';
row.style.color = 'red';
...
}
参考サイト:您的访问请求被拒绝 – ITeye技术社区
Tags: JavaScript, Performance
Posted in JavaScript | No Comments »