jQuery も1歳の誕生日を迎え、jQuery 1.1.1 が出ておりますが、
様子見で、まだ使っておりません。
良さそうですね。
で、AoD も来月で1歳の誕生日なので、記念と称して、
今となってはもう必要ない jQuery 1.0.4 の私的勘所を10個にまとめて見ました。
1.エレメントの内容の設定には、$.html() は使わない。(参照は良い)
$.html() は、innerhtml というアトリビュートを勝手に作ってしまい、
そこにも2重に内容を書き込んでしまう。(FireFox とか Safari で)
対策は、$.empty().append() を使って、内容をクリアしてから、追加する。
これだと、余計なものは作られない。
$('#test').html('中身');
↓
$('#test').empty().append('中身');
最近のブログ投稿画面によくあるブラウザ上の“WYSIWYG型”HTMLエディターで、
スクリプトが動いてしまうと、余計なものまでコンテンツに入ったまま保存されてしまうので、注意が必要。
普通の場合でもメモリ食いそうだけどね。
2.$.trim() を使う。
$.html()で取得して、その内容に対して文字列操作をする場合、
ブラウザによって、タグ直後の空白文字を含めるブラウザ(IE以外)と
含めないブラウザ(IE)があるので、$.trim() してからやるのが安全。
$('#test').html().charAt(0);
↓
$.trim($('#test').html()).charAt(0);
3.$.css() では一括指定プロパティは使わない。
例えば、背景画像を設定するのに、background ではなく、background-image を使う。
background を使うと、画像だけでなくて、FireFox とかで -moz 系のプロパティまで勝手に追加されてしまう。
悪さはしないけど、気持ち悪い。
$('#test').css({
'background': 'url(http://www.xxx.com/images/xxx.jpg)'
});
↓
$('#test').css({
'background-image': 'url(http://www.xxx.com/images/xxx.jpg)'
});
4.$.attr() でのJSONの書き方。
普通
$.attr({
id : 'test',
class: 'test'
});
みたいに文法上書けるけど、なぜかブラウザによってエラーになる(IE)。
$.attr({
'id' : 'test',
'class': 'test'
});
というふうに、変数名の方にも引用符を付けると問題無くなる。
たぶん、class が何かの予約語になってる感じ。
5.$.param() は便利。
XMLHttpRequest や JSONScriptRequest など、Ajax で動的な呼び出しをする際に、
パラメタを $.param() を使って生成する。
JSON とかを渡すと、全ての値に encodeURIComponent() でエンコードしてから、
& で区切ったCGIパラメタ文字列を生成してくれる。
var url = url + '?' + $.param({
'url' : 'http://www.xxx.com/xxx/',
'test': true
});
な使い方。
Continue reading "細かすぎて伝わらない かも知れない jQueryの勘所10選 (jQuery 1.0.4 版)" »