クラス -> Utilities -> Utilities -> formatDate(日付フォーマット)

Posted by muchag | Google Apps Script |
初回投稿:2015-03-05 (木) 18:19:43 | 最終更新:2015-03-05 (木) 18:19:43

日付フォーマットメソッド。

書式

formatDate(date, timeZone, format)

formatDate(date, timeZone, format)

引数1:Date オブジェクト
引数2:タイムゾーン。日本の場合は ‘Asia/Tokyo’
引数3:フォーマット
返り値:指定フォーマット文字列
 

[gas language=”js” firstline=”” highlight=””] var formattedDate = Utilities.formatDate(new Date(), “GMT”, “yyyy-MM-dd’T’HH:mm:ss’Z'”);
Logger.log(formattedDate);
[/gas]  

参考サイト

Qiita:GASの怖い話と対策となんか

Posted by muchag | Google Apps Script |
初回投稿:2015-03-05 (木) 18:19:43 | 最終更新:2015-03-05 (木) 18:19:43

クラス -> 内部関数

Posted by muchag | JavaScript |
初回投稿:2015-02-28 (土) 0:27:09 | 最終更新:2015-02-28 (土) 0:38:35

内部関数は、ちょっと特殊みたい。

内部関数とは

クラス内に設置したローカルメソッド。
外部からは呼べない。

  1. var hoge = ( function() {
  2.  
  3.   // constructor
  4.   var hoge = function() {
  5.     this.x = 5;
  6.   };
  7.  
  8.   // 内部関数(クラス内メソッド)
  9.   function moge() {} ← これ
  10.  
  11.   var p = hoge.prototype;
  12.  
  13.   p.f1 = function() {
  14.     return true;
  15.   };
  16.  
  17.   return hoge;
  18. })();

 

呼び出し

コンストラクタからでも、公開メソッドからでも関数名(メソッド名)で呼び出せた。

  1. p.f2 = function() {
  2.     moge();
  3. };

 

特殊なところ
this

内部関数内では、this を使えない。
解決策は後述。
 

引数

引数があると、通常通りでは呼び出せなかった。

  1. function moge( arg ) {}
  2.  
  3. p.f2 = function() {
  4.     moge( arg );
  5. };

これでは、syntax error にはならないけど、値が渡らない。
 

解決策

上記2点を一度に解決。
(解決法はわかったけど、まだあまりよく理解できていない)

apply メソッド、または call メソッドを利用する。

つまり、下記のように呼び出す。

  1. function moge( arg ) {}
  2.  
  3. p.f2 = function() {
  4.     moge.apply( this, arg );
  5.     moge.call( this, arg );
  6. };

 

誰それ

参考サイトを見ると

callはFunction.prototypeの中にあります。

あと味:applyとcallの使い方を丁寧に説明してみる

と書いてあるので、プロパティ・オブジェクト からの呼び出しだから、というなのかもしれないけど、今はまだよくわかっていない。
 

this はどこへいった・・・

引数に指定した this。
でも、内部関数側は受け取っていない。

どうも、自動的に(強制的に?暗示的に?)受け取るらしく
これで、内部関数内で this を利用できる。

また、何も this を渡さなければいけないわけではなく
要は内部関数内で this と記述して利用したいオブジェクトを指定すればよいらしい。
 

両者の違いは?

apply

  1. var args = [ 1, 2, 3 ];
  2. moge.apply( this, args );

apply は、this 以外の引数を、配列にまとめて渡す。
本当に配列を渡すときとか、引数が多い時、または変更が頻繁にあるときなどには便利。
 
call

  1. moge.call( this, 1, 2, 3 );

call は、this 以外の引数を列挙して渡す。
 

参考サイト

あと味:applyとcallの使い方を丁寧に説明してみる

Posted by muchag | JavaScript |
初回投稿:2015-02-28 (土) 0:27:09 | 最終更新:2015-02-28 (土) 0:38:35

クラス -> グレートなつくりかた

Posted by muchag | JavaScript |
初回投稿:2015-02-27 (金) 21:27:25 | 最終更新:2015-02-28 (土) 0:03:11

JavaScript は滅多に使わないので、今までクラスとは無縁できたけど、これからは是非クラスを利用していきたい。

以前、つかみ という JavaScript クラスの基本について書いたけど、今回は グレートなつくりかた という記事を見つけたので、改めて基本記事を作成。

グレートなつくりかた
  1. var hoge = (function() {
  2.  
  3.   var FOOFOO = 777; // クラス内定数
  4.  
  5.   // constructor
  6.   var hoge = function(arg) {
  7.     this.x = 5;
  8.     this.y = 10;
  9.     this.z = arg;
  10.   };
  11.  
  12.   var p = hoge.prototype;
  13.  
  14.   p.f1 = function() {
  15.     return true;
  16.   };
  17.  
  18.   p.f2 = function() {
  19.     return false;
  20.   };
  21.  
  22.   return hoge;
  23. })();
  24.  
  25. var instance = new hoge(1);
  26. // hoge {x: 5, y: 10, z: 1, f1: function, f2: function}

Qiita:【javascript】やさしいクラスの作り方
より引用。
 
この書き方だと、1クラス1ブロックになって、見やすい。 😎
 
せっかくなので、覚書用に改変。

  1. var hoge = ( function() {
  2.  
  3.   var FOOFOO = 777; // クラス内定数
  4.   var foo = 777;    // クラス内変数
  5.  
  6.   // constructor
  7.   var hoge = function( arg ) {
  8.     this.x = 5;
  9.     this.y = 10;
  10.     this.z = arg;
  11.   };
  12.  
  13.   // 内部関数(クラス内メソッド)
  14.   function moge() {}
  15.  
  16.   var p = hoge.prototype;
  17.  
  18.   p.f1 = function() {
  19.     return true;
  20.   };
  21.  
  22.   p.f2 = function() {
  23.     return false;
  24.   };
  25.  
  26.   return hoge;
  27. })();
  28.  
  29. var instance = new hoge(1);
  30. // hoge {x: 5, y: 10, z: 1, f1: function, f2: function}

 

参考サイト

Qiita:【javascript】やさしいクラスの作り方
Qiita:[JavaScript]クラス、関数、オブジェクト クラス

Posted by muchag | JavaScript |
初回投稿:2015-02-27 (金) 21:27:25 | 最終更新:2015-02-28 (土) 0:03:11

pjax(defunkt) -> フォームの値の受け渡し

Posted by muchag | jQuery,Library & PlugIn & AddIn,困ったTT |
初回投稿:2015-02-18 (水) 12:44:50 | 最終更新:2015-02-18 (水) 13:33:45

フォームの値の受け渡しについて。

【環境】
jQuery:2.1.3
pjax(defunkt):1.9.4
GET

GET 渡しはすんなりできた。

  1. var url = 'index.php';
  2. var data = {
  3.     name : $( 'input[name = "name"]' ).val(),
  4.     value : $( 'input[name = "value"]' ).val()
  5. };
  6. $.pjax({
  7.     url: url,
  8.     type: 'GET',
  9.     data: data,
  10.     container: '#container',
  11. });
  1. // print_r( $_GET ); 結果
  2. Array
  3. (
  4.     [name] => hoge
  5.     [value] => 1
  6. )

 

JSON

dataType を json にしても、結果は同じ。

  1. $.pjax({
  2.     url: url,
  3.     type: 'GET',
  4.     data: data,
  5.     dataType: 'json',
  6.     container: '#container',
  7. });

 

JSONP

dataType を jsonp にすると、2つばかり $_GET の値が増えた。。。

  1. $.pjax({
  2.     url: url,
  3.     type: 'GET',
  4.     data: data,
  5.     dataType: 'jsonp',
  6.     container: '#container',
  7. });
  1. // print_r( $_GET ); 結果
  2. Array
  3. (
  4.     [callback] => jQuery21309920695357463317_1424227516871
  5.     [name] => hoge
  6.     [value] => 1
  7.     [_] => 1424227516872
  8. )

まぁ、JSON と JSONP のお勉強は今度ということで。 🙄
 

POST
  1. var url = 'index.php';
  2. var data = {
  3.     name : $( 'input[name = "name"]' ).val(),
  4.     value : $( 'input[name = "value"]' ).val()
  5. };
  6. $.pjax({
  7.     url: url,
  8.     type: 'POST',
  9.     data: data,
  10.     container: '#container',
  11. });
  1. // print_r( $_POST ); 結果
  2. Array
  3. (
  4. )

$_POST を取得できていない。
そして通信時間が長くなった。

dataType を text にしても、結果は同じ。
 

serialize()

data を serialize() にしても結果は同じ。

  1. var url = 'index.php';
  2. $.pjax({
  3.     url: url,
  4.     type: 'POST',
  5.     data: $( 'form' ).serialize(),
  6.     container: '#container',
  7. });

 

JSON, JSONP

dataType を json にしたら、通信すら行われなくなった。
JSONP にしても、通信は行われない。

  1. $.pjax({
  2.     url: url,
  3.     type: 'GET',
  4.     data: data,
  5.     dataType: 'json',
  6.     container: '#container',
  7. });

 
困った
仕方ないので、今回は GET で対応。

Posted by muchag | jQuery,Library & PlugIn & AddIn,困ったTT |
初回投稿:2015-02-18 (水) 12:44:50 | 最終更新:2015-02-18 (水) 13:33:45

フォームの値処理

Posted by muchag | jQuery |
初回投稿:2015-02-17 (火) 18:55:45 | 最終更新:2015-02-17 (火) 18:55:45

フォームの値の取得と設定。
一覧サイトをめっけたので、参考サイトのみ。

参考サイト

JavaScript好き:jQueryにおけるフォーム値の取得と設定

Posted by muchag | jQuery |
初回投稿:2015-02-17 (火) 18:55:45 | 最終更新:2015-02-17 (火) 18:55:45

タブメニュー 横その1

Posted by muchag | jQuery |
初回投稿:2015-02-17 (火) 18:10:40 | 最終更新:2015-02-17 (火) 18:11:33

横並びのタブメニューその1。

【環境】
jQuery:1.11.2
HTML
  1. <div id="tab">
  2. <ul>
  3.     <li>tab_1</li>
  4.     <li>tab_2</li>
  5.     <li>tab_3</li>
  6. </ul>
  7. </div>

 

CSS
  1. #tab ul li {
  2.     float: left;
  3.     height:20px;
  4.     margin:0px 0px 0px 10px;
  5.     padding:5px 15px 5px 15px;
  6.     border:1px solid #ddd;
  7.     color: #999;
  8.     background-color:#ddd;
  9.     cursor:pointer;
  10. }
  11. #tab ul li.selected {
  12.     color: #000;
  13.     background-color:#fff;
  14.     cursor:default;
  15. }

 

jQuery
  1. $( '#tab ul' ).on( 'click', 'li', function() {
  2.     $( 'li.selected' ).removeClass( 'selected' );
  3.     $( this ).addClass( 'selected' );
  4. })
  5.  
  6. $( '#tab ul li' ).first().trigger( 'click' );

 
ソースはほぼ参考サイトからいただいてきた。
 

参考サイト

jQuery 入門:タブメニュー(1)

Posted by muchag | jQuery |
初回投稿:2015-02-17 (火) 18:10:40 | 最終更新:2015-02-17 (火) 18:11:33

.first()

Posted by muchag | jQuery |
初回投稿:2015-02-17 (火) 17:50:13 | 最終更新:2015-02-17 (火) 17:52:15

エレメントセットの中の最初のエレメントを拾ってくるメソッド。

jQuery:.first()

【環境】
jQuery:1.11.2
書式

.first()

Reduce the set of matched elements to the first in the set.
勝手意訳:合致するエレメントセットから、セット内の最初のオブジェクトを捕まえる

引数:なし
返り値:jQuery オブジェクト
 

  1. <ul>
  2.     <li>list item 1</li>
  3.     <li>list item 2</li>
  4.     <li>list item 3</li>
  5.     <li>list item 4</li>
  6.     <li>list item 5</li>
  7. </ul>
  1. $( "li" ).first().css( "background-color", "red" );

li というエレメントセット(5個)の最初のオブジェクト

  1. <li>list item 1</li>

を捕まえて CSS を設定する。
 
child 系ではないので、ul に対する first ではない。

Posted by muchag | jQuery |
初回投稿:2015-02-17 (火) 17:50:13 | 最終更新:2015-02-17 (火) 17:52:15

prop メソッドと attr メソッドの違い

Posted by muchag | jQuery |
初回投稿:2015-02-11 (水) 18:10:45 | 最終更新:2016-09-20 (火) 22:39:41

わかりやすい解説を見つけた。

attrは、HTML属性を取得する、propはjavascriptでの属性を取得する。

true か falseはjavascriptでの属性。

Qiita:jqueryでチェックボックスにチェックを入れるにはpropを使え。

参考サイト

BuildINSIDER:要素のプロパティを取得/設定するには?(prop)

Posted by muchag | jQuery |
初回投稿:2015-02-11 (水) 18:10:45 | 最終更新:2016-09-20 (火) 22:39:41

要素の指定記法

Posted by muchag | jQuery |
初回投稿:2015-02-11 (水) 18:07:29 | 最終更新:2015-02-11 (水) 18:07:29

参考サイトのコードを、理解の浅いまま使い回してはまった。

文字列 -> 検索(部分一致
こちらの記事を書いているときに、問題が起きた
 

現象
  1. <div id="test">
  2.     <button id="hoge_1"></button>
  3.     <button id="hoge_2"></button>
  4. </div>
  1. // 反応しない
  2. $("button [id *= 'hoge_']").hide();
  3.  
  4. // 反応する
  5. $("#test [id *= 'hoge_']").hide();

 

解決

よく見てみれば当たり前のことで
CSS と同じだから、スペースがあると 別の DOM 要素 と判定される。

  1. $("button[id *= 'hoge_']").hide();

これで想定通りに動作した。

Posted by muchag | jQuery |
初回投稿:2015-02-11 (水) 18:07:29 | 最終更新:2015-02-11 (水) 18:07:29

ページの読込

Posted by muchag | jQuery |
初回投稿:2015-02-11 (水) 16:34:22 | 最終更新:2017-01-04 (水) 10:45:14

参考サイトをメモ。

書式

Ajax(Low-Level Interface)
1.8 からこの書式。

  1. $.ajax({
  2.  
  3.     url: 'test.php'
  4. })
  5. .done(function(data, status, xhr) {
  6.  
  7.     // 通信成功時の処理
  8. })
  9. .fail(function(xhr, status, error) {
  10.  
  11.     // 通信失敗時の処理
  12. }).always(function(arg1, status, arg2) {
  13.  
  14.     // 通信完了時の処理
  15. });
  1. $.ajax({
  2.  
  3.     url: 'test.php',
  4.     type: 'POST',
  5.     timeout: 10000
  6. })
  7. .done(function(data, status, xhr) {
  8.  
  9.     $('#result').html(data);
  10. })
  11. .fail(function(xhr, status, error) {
  12.  
  13.     $('#log').append('xhr.status = ' + xhr.status + '<br />');          // 例: 404
  14.     $('#log').append('xhr.statusText = ' + xhr.statusText + '<br />');  // 例: Not Found
  15.     $('#log').append('status = ' + status + '<br />');                  // 例: error
  16.     $('#log').append('error = ' + error + '<br />');                    // 例: Not Found
  17. });
返却値の利用
  1. $.ajax({
  2.  
  3.     url: 'test.php'
  4. })
  5. .done(function(data, status, xhr) {
  6.  
  7.     // これで JSON Object として扱える
  8.     var response = $.parseJSON(data);
  9. })
  10. .fail(function(xhr, status, error) {
  11.  
  12.     // 通信失敗時の処理
  13. })
  14. .always(function(arg1, status, arg2) {
  15.  
  16.     // 通信完了時の処理
  17. });
参考サイト

とほほのWWW入門:jQuery入門 Ajax
→いつもいつもお世話になっております!

Crunchtimer:[jQuery] Ajaxの.loadと.post(.get)の違いについて

Designup:jQueryでAjax 画面遷移なしでデータを読み込む方法
→現在のページの指定箇所へ読み込む方法が載っている

Posted by muchag | jQuery |
初回投稿:2015-02-11 (水) 16:34:22 | 最終更新:2017-01-04 (水) 10:45:14
« 前ページへ次ページへ »