覚えておくと捗るjQueryのコードスニペットあれこれ。
画像のプリロード
(function($) {
var cache = [];
$.preLoadImages = function() {
var args_len = arguments.length;
for (var i = args_len; i--;) {
var cacheImage = document.createElement('img');
cacheImage.src = arguments[i];
cache.push(cacheImage);
}
}(jQuery);
jQuery.preLoadImages("image1.gif", "/path/to/image2.png");
複数カラムのサイズを高いものに合わせる
var max_height = 0;
$("div.col").each(function(){
if ($(this).height() > max_height) { max_height = $(this).height(); }
});
$("div.col").height(max_height);
レガシーブラウザでHTML5のマークアップを有効にする
(function(){if(!/*@cc_on!@*/0)return;var e = "abbr,article,aside,audio,bb,canvas,datagrid,datalist,details,dialog,eventsource,figure,footer,header,hgroup,mark,menu,meter,nav,output,progress,section,time,video".split(','),i=e.length;while(i--){document.createElement(e[i])}})()
できたら、ヘッダーにこれを追加しておくと…(ry
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
URLのGETパラメーターを取得する
$.urlParam = function(name){
var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
if (!results) { return 0; }
return results[1] || 0;
}
フォームでエンターキーを無効にする
$("#form").keypress(function(e) {
if (e.which == 13) {
return false;
}
});
特定の要素にCSSクラスを追加
$('#myelement').addClass('myclass');
特定の要素からCSSクラスを削除
$('#myelement').removeClass('myclass');
特定の要素に、CSSのクラスが適用されているかどうかチェック
$(id).hasClass(class)
jQueryを使ってCSSを切り替える
$('link[media='screen']').attr('href', 'example.css');
要素にHTMLを追加
$('#id').append('追加したい文字列とか');
要素が存在するかどうかを確認
if ($('img').length) {
log('画像、あるよ!');
} else {
log('imgタグとかないし。');
}
要素の親要素を取得する
var id = $("button").closest("div").attr("id");
要素の兄弟要素を取得する
$("div").siblings()
プルダウンメニューからオプションを削除する
$("#selectList option[value='2']").remove();
プルダウンメニューで選んだ内容(valueではなくテキスト)を取得
$('#selectList :selected').text();
テーブルの行の色を交互に変える(ゼブラカラー)
$("tr:odd").addClass("odd");
&
.odd{background-color:#ddd;}
要素の中の子要素を数える
$("#id > div").length