現在のページが、W3C CSS のボックスモデルをサポートしているか否かを true / false で返します。jQuery 1.3 で破棄されました。代わりに $.support.boxModel を参照してください。
if ($.boxModel) { ... }
ブラウザに関する情報を保持します。jQuery 1.9 で廃止されました。
if ($.browser.msie) { alert("Internet Explorer"); }
if ($.browser.mozilla) { alert("Mozilla (ex.Firefox...)"); }
if ($.browser.opera) { alert("Opera"); }
if ($.browser.webkit) { alert("WebKit (ex. Chrome, Safari...)"); }
if ($.browser.safari) { alert("Safari"); }
if ($.browser.chrome) { alert("Google Chrome"); }
alert($.browser.version); // jQuery 1.1.3~
ブラウザのサポート状況に関するオブジェクトを返却します。jQuery 1.9 で廃止されました。
$.each($.support, function(key, val)) { console.log(key + " = " + val); });
オブジェクトはいくつかの true / false 値を持つ属性を持ちます。
名前 | 説明 |
---|---|
ajax | Ajaxをサポートしているか。 |
boxModel | W3C CSSボックスモデルをサポートしているか。 |
changeBubbles | W3C CSSイベントモデルに従ったイベントのバブルアップをサポートしているか。 |
checkClone | radioボタンや、checkboxの複製の際にチェックステータスもコピーするか。 |
checkOn | 値を持たない checkbox のデフォルト値が "on" になるか。 |
cors | CORS(Cross-Origin Resource Sharing)をサポートしているか。 |
cssFloat | CSS float のプロパティ名が CSS Spec で定められた .cssFloat であるか。 |
hrefNormalized | .getAttribute() が href 属性を変更無しに取得できるか。 |
htmlSerialize | .innerHTML で <link> のシリアライズや挿入できるか。 |
leadingWhitespace | .innerHTML でホワイトスペース等をそのまま挿入できるか。 |
noCloneChecked | DOM要素のコピーが .checked の状態もコピーするか。 |
noCloneEvent | DOM要素がイベントハンドラ無しで生成されるか。 |
opacity | opacity をサポートしているか。 |
optDisabled | disabled なセレクト要素中の option要素が、自動的に disabled にならないか。 |
optSelected | デフォルトで選択状態の option要素が selected 属性を持っているか。 |
scriptEval | .appendChild() や .createTextNode() などの標準的な DOM操作で追加されたスクリプトが実行されるか。 |
style | 要素のインラインスタイルが、DOM Level 2仕様の通りに、DOM の style属性で参照できるか。 |
submitBubbles | submitイベントが、W3C DOM Event model で定められている通りにバブルアップするか。 |
tbody | 空の table要素が、tbody要素無しに存在できるか。 |
element要素に、key=value の値を設定・参照します。
$.data(document, "fontSize", "small"); $.data(document, "language", "Japanese"); alert($.data(document, "fontSize")); // small alert($.data(document, "language")); // Japanese $.each($.data(document), function(key, val) { console.log(key + "=" + val); });
文字列 str の前後のホワイトスペースを除去した文字列を返却します。
var str = $.trim(" abc "); // "abc"
文字列 json を JSONと解釈してオブジェクトに変換し、返却します。変数名も値もダブルクォーテーション(")で囲む必要があります。ダブルクォーテーション(")で囲まれていなかったり、シングルクォーテーション(')で囲まれている場合はエラーになります。jQuery 3.0 で廃止されました。
var str = '{ "name":"John", "age":"36" }'; var obj = $.parseJSON(str); console.log("name = " + obj.name); // name = John console.log("age = " + obj.age); // age = 36
文字列 xml を XMLとして解釈してオブジェクトに変換し、返却します。
var str = '<xml><name>John</name><age>36</age></xml>'; var xmlDoc = $.parseXML(str); console.log("name = " + $(xmlDoc).find("name").text()); // name = John console.log("age = " + $(xmlDoc).find("age").text()); // age = 36
文字列 html を HTML として解釈して配列に変換します。
var str = '<div class="name">Yamada</div><div class="age">38</div>'; var html = $.parseHTML(str); console.log(html[0]); // <div class="name">Yamada</div> console.log(html[1]); // <div class="age">38</div>
配列やオブジェクトの属性をひとつづつ処理します。
var array = [ "Red", "Green", "Blue" ]; $.each(array, function(index, val) { // 0:Red, 1:Green, 2:Blue console.log(index + ":" + val); }); var params = { height: "100px", width: "100px" }; $.each(params, function(key, val) { // height=100px, width:100px console.log(key + "=" + val); });
配列 array の中から、条件にマッチするもののみを抜き出します。value には要素の値、index にはインデックスが格納されます。抜き出す場合は true を、さもなくば false を返します。invert に false を指定した場合は、true と false が逆になります。下記の例では、配列の中から "u" を含むもののみを抜き出して、配列 arr2 に代入します。arr1 の値は変化しません。
var arr1 = [ "sun", "mon", "tue", "wed", "thu", "fri", "sat" ]; var arr2 = $.grep(arr1, function(value, index) { return (value.match(/u/)); }); alert(data2);
DOM要素の配列から重複した要素を排除し、ソートしたものを返却します。数値、文字列、jQuery要素の配列では使用できず、DOM要素の対してのみ利用可能です。$.uniqueSort() は jQuery 1.12/2.2 で追加されたものですが、$.unique() の名前を変更したのみで、同じ動作をします。
<div id="a" class="blue"></div> <div id="b" class="blue red"></div> <div id="c" class="blue red"></div> <div id="d" class="red"></div>
var div1 = $(".blue").get(); // a, b, c var div2 = $(".red").get(); // b, c, d var div3 = div1.concat(div2); // a, b, c, b, c, d var div4 = $.unique(div3); // a, b, c, d
jQuery の $("div") や JavaScript の getElementsByTagname() などで返されるリストを、JavaScript配列に変換します。
var obj1 = document.getElementsByTagName("div"); var arr1 = $.makeArray(obj1); arr1.sort(); var obj2 = $("div"); var arr2 = $.makeArray(obj2); arr2.reverse();
配列 array を function で指定した変換関数を用いて変換します。下記の例では、配列要素を大文字にした配列を生成しています。
var arr1 = [ "one", "two", "three" ];
var arr2 = $.map(arr1, function(val, i) { // [ "ONE", "TWO", "THREE" ]
return(val.toUpperCase());
});
jQuery 1.6 以降ではオブジェクトも使用できます。
var obj = { height:"100px", width:"100px" };
var arr = $.map(obj, function(val, key) { // [ "height=100px", "width=100px" ]
return(key + "=" + val);
});
配列 array1 に、配列 array2 の要素をマージし、マージした結果を返します。
var arr1 = [ 1, 2, 3 ];
var arr2 = [ 4, 5, 6 ];
$.merge(arr1, arr2);
console.log(arr1.join(", ")); // 1, 2, 3, 4 5, 6
array1 の要素を変更したくない場合は、次のように呼び出してください。
var arr3 = $.merge($.merge([], arr1), arr2);
配列 target に配列 object1, ... objectN の各要素をマージし、マージ後の配列を返却します。
var obj1 = { width:"100px", height:"100px" };
var obj2 = { top:"10px", left:"10px" };
var obj3 = $.extend({}, obj1, obj2); // { width:"100px", height:"100px", top:"10px", left:"10px" }
code を JavaScript と解釈して実行します。
$.globalEval("var str = 'ABC';");
options にはオプションを定義します。現在のところ、nonce のみが定義されています。
$.globalEval("var str = 'ABC';", { nonce: "nonce-2726c7f26c" });
obj のタイプを文字列で返します。
type = $.type(null); // null type = $.type(undefined); // undefined type = $.type(true); // boolean type = $.type(123); // number type = $.type("abc"); // string type = $.type([1, 2, 3]); // array type = $.type({ t1:123 }); // object type = $.type(/abc/); // regexp type = $.type(function() {}); // function type = $.type(new Date()); // date type = $.type(new Error()); // error (jQuery 1.9~) type = $.type(Symbol()); // symbol (jQuery 1.9~) type = $.type($("body")); // object
contained要素が、container要素に包含されているか否かを調べます。
if ($.contains(document.documentElement, document.body)) { ... } // true if ($.contains(document.body, document.documentElement)) { ... } // false
配列 array の中で value に一致する要素のインデックスを返します。最初が 0番目で、見つからなかった場合は -1 を返します。fromIndex には検索を開始するインデックスを指定します。
var array = [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ];
var num = $.inArray("Wed", array); // num = 3
それぞれ、arg が数値であれば、配列であれば、関数であれば、空オブジェクトであれば、プレインオブジェクトであれば、ウィンドウであれば、XMLドキュメントであれば true を返し、さもなくば false を返します。
if ($.isNumeric(123)) { ... } if ($.isArray([ 1, 2, 3 ])) { ... } if ($.isFunction(function() {})) { ... } if ($.isEmptyObject({ })) { ... } if ($.isPlainObject({ id:"abc" })) { ... } if ($.isWindow(window)) { ... } if ($.isXMLDoc($.parseXML("<n></n>"))) { ... }
何もしない関数です。プラグイン開発時などに、ダミーの関数として用いられます。
$.animate({ width:"100px" }, 3000, $.noop);
context を this として参照可能な関数 function を生成します。ある要素のイベントハンドラの中で、別の要素を this として扱う関数を実行したい場合に有効です。下記の例では、button1ボタンが押された時に、div1要素を this として扱う関数を呼び出しています。
$("#button1").click($.proxy(function() { console.log("id = " + $(this).attr("id")); }, $("#div1")));
contenxt, name の形式は、this として扱われるオブジェクトと、そのオブジェクトが持つ関数名を指定します。
var obj = { name: "John", test: function() { console.log("My name is " + this.name); } }; $("#button1").click($.proxy(obj, "test"));
現在の時刻を 1970年1月1日0時0分0秒(GMT)からの秒数で返します。
console.log("now = " + $.now());