1年間にもっとも売れたプログラミング関連書籍は、「人工知能は人間を超えるか ディープラーニングの先にあるもの (角川EPUB選書)」

10代プログラミング関連書籍ランキング、1位にディープラーニング

honto上で1年間にもっとも売れたプログラミング関連書籍は、「人工知能は人間を超えるか ディープラーニングの先にあるもの (角川EPUB選書)」(著:松尾豊/KADOKAWA)だった。注目される人工知能技術「AI」をテーマに、ディープラーニングの特徴や人工知能のこれまでと今、これからを解き明かす一冊だという。

(引用:https://resemom.jp/article/2017/05/19/38190.html

 

【jQuery】DB保存時にどう取得する?内部、外部、それぞれのhtmlの取得

jQueryで内部、外部、要素自身も含めたhtmlを取得する方法です。

 

■内部のHTMLを取得する場合

var myHtml = $(“#aaa”).html();

この方法では要素自信のhtmlは取得できません。

 

■自身を含めたHTMLを取得する場合

var myHtml = $(“#aaa”).prop(‘outerHTML’);

要素自信も含めたhtmlを取得するにはpropで取得します。

 

試してみてください。

”tagName”で先頭or〇〇番目のタグ名を見る!jQueryでタグの名前を取得する方法2種類

■prop(“tagName”)で取得する

console.log( $(“#hello”).prop(“tagName”) );

出力例) “INPUT”

helloの中の先頭しか取れないので使いどころ注意!

 

■get(n番目)+tagNameで見る

console.log( $(“.aaaa”).get(0).tagName );
出力例) “DIV”
console.log( $(“.aaaa”).get(1).tagName );

出力例)”DIV”

指定したクラス名やIDの中の●●番目のタグ名を知りたい!という時にはこんな感じで参照ができます。試してみてください。

【JQuery】on(type[data])カスタムイベントを設定する処理、メリットはもちろんある

 

■メリット

・一度に複数のイベントタイプを定義できる

・データを渡すことができる

.on()で定義したイベントは、.off()を使って解除できます。

複数のイベントタイプを半角スペースで区切って指定することで、複数のイベントに対して一括して、同じイベントハンドラ(イベントが起こったときに実行される関数)を定義することができます。(参考:https://app.codegrid.net/entry/practical-jquery-1#toc-0

 

【JQuery】trigger(type, [data])はイベントを発火させる処理

ディスパッチイベントみたいなものです。

■trigger(type, [data])

各要素の指定されたイベントを実行します。この関数を実行すると、指定されたイベントそのものの動作と、登録されたイベントハンドラの呼び出しを共に行います。例えば”submit”を呼び出した場合、そのformのsubmit処理が実際に実行されます。この動作は例で言えばsubmitボタンが押された場合と全く同じで、コールバック関数内の戻り値にfalseを返すなどの処理でキャンセルすることも可能です。

デフォルトで存在するイベントだけでなく、bindで登録したカスタムイベントなども呼び出すことが出来ます。

(引用:http://semooh.jp/jquery/api/events/trigger/type%2C+%5Bdata%5D/

[inline]
[script]
function hogeclick(){
alert(“88”);
}
[/script]
[/inline]

【 jQuery】セレクタ指定方法、目的の要素を的確に取得する

■基本:セレクタで選択する

IDやクラス名などで選択するのが基本です。

 

■トラバースとは、走査系のメソッド

「この要素を抜き出したい!」と思ったときにセレクタだけでは抜き出しにくい場合があります。そういうときにトラバース(走査)系のメソッドを使うと、簡単にできたりするので覚えておくと便利なものです。

[ セレクタ ]
$(“body”)
bodyタグの要素を選択

$(“#id1″)
ID名 id1 の要素を選択

$(“.class1″)
CLASS名 class1 の要素を選択

$(“.class1 .class2″)
CLASS名 class1 の要素の中にあるCLASS名 class2 の要素を選択

$(“.class3, .class4″)
CLASS名 class3、もしくはCLASS名 class4 の要素を選択

$(“.class5″, “#id1″)
ID名 id1 の要素の中にあるCLASS名 class5 の要素を選択

$(“.class6.class7″)
CLASS名 class6 と class7 2つ持つ要素を選択

$(“a[href]”)
aタグのhref属性がある要素を選択

$(“a[href = ‘#pagetop’]”)
aタグのhref属性の値が「#pagetop」の要素を選択

$(“a[href != ‘#pagetop’]”)
aタグのhref属性の値が「#pagetop」でない要素を選択

$(“a[href ^= ‘#link’]”)
aタグのhref属性の値が「#link」から始まる要素を選択

$(“a[href $= ‘bottom’]”)
aタグのhref属性の値が「bottom」で終わる要素を選択

$(“a[href *= ‘page’]”)
aタグのhref属性の値に「page」が含まれている要素を選択

$(“ul li:first”)
すべてのulタグ内をあわせたliタグの中の最初の要素を選択

$(“ul li:first-child”)
各ulタグ内にあるそれぞれのliタグの最初の要素を選択

$(“ul li:last”)
すべてのulタグ内をあわせたliタグの中の最後の要素を選択

$(“ul li:last-child”)
各ulタグ内にあるそれぞれのliタグの最後の要素を選択

$(‘li:not(“.class6″)’)
liタグでCLASS名 class6 が指定されていない要素を選択
[ トラバース ]
要素については先祖、親子、兄弟という階層が存在します。

<div>
<ul>
<li>兄</li>
<li>この要素から見て....ul要素は親、div要素は先祖</li>
<li>弟</li>
</u/>
ul要素からみるとli要素は子、div要素は親ということになります。
</div>

 
$(“#id1″).find(“.class7″)
ID名 id1 の要素の中にあるCLASS名 class7 の要素を選択

$(“ul”).children(“.class6″)
ulタグ の子要素にある CLASS名 class6 の要素を選択

$(“li.class6″).parent()
CLASS名 class6 があるliタグを持つ親要素を選択

$(“li.class6″).parent(“#id1″)
CLASS名 class6 があるliタグを持つ親要素でID名 id1 の要素を選択

$(“li.class6″).next()
CLASS名 class6 があるliタグに隣接する弟要素を選択

$(“li.class6″).next(“.class7″)
CLASS名 class6 があるliタグに隣接する弟要素の中でCLASS名 class7 の要素であれば選択
(それ以外であれば選択しない)

$(“li.class7″).prev()
CLASS名 class7 があるliタグに隣接する兄要素を選択

$(“li.class7″).next(“.class6″)
CLASS名 class7 があるliタグに隣接する兄要素の中でCLASS名 class6 の要素であれば選択
(それ以外であれば選択しない)

$(“a[href ^= ‘#link’]”).closest(“li”)
aタグのhref属性の値が「#link」から始まる要素の最も近いliタグ(親要素)を選択

$(“li”).slice(“3,12″)
すべてのliタグをあわせた0から数えて3個目から12個目までの間の要素を選択

$(“li”).find(“a”).css({color: ‘white’}).end()
liタグ内にあるaタグにスタイルを追加した後、直前の要素を選択

$(“li”).not(“li.class6″)
すべてのliタグでCLASS名 class6 が指定されていない要素を選択

$(“a[href *= ‘middle’]”).first()
aタグのhref属性の値に「middle」が含まれている一番最初にある要素を選択

$(“a[href *= ‘middle’]”).last()
aタグのhref属性の値に「middle」が含まれている一番最後にある要素を選択

$(“p”).siblings()
pタグの兄弟要素を選択

$(“p”).siblings(“p”)
pタグの兄弟要素の中でpタグの要素を選択

 

■詳しくは以下

jQuery本家ドキュメント「Selectors – jQuery API」「Traversing – jQuery API

簡単!JavaScriptでURLを遷移させる方法

そういえば、ajaxなどで認証をとって、画面遷移したいときどうすればいいのだっけ?
というJS遷移の記述方法です。

 

■HTMLでの記述例

<a href="パス名">◯◯</a>

 
■JavaScriptの記述例

window.location.href = 'パス名'; // 通常の遷移
window.open('パス名', '_blank'); // 新しいタブを開き、ページを表示

【ローカル編】ajaxで取得出来たデータの中身をローカルハンドラでチェックする時の引数

ajaxで通信した時、グローバルのハンドラでチェックする方法は前回紹介したのですが、今回は、その通信処理のハンドラ内。つまり、イベントの場所としてローカルのハンドラで取得した値やプロパティをチェックする方法をご紹介します。

①data:通信して取得できたデータ

②this:プロパティなど

$.ajax({
                                url: "./sample.json",
                                type: "GET",
                                dataType: "json",
                                timeout: 30000,
                                success: function (data) {
                                //"成功しました"
                                // this.url; //"./sample.jsonが参照できます"
                                },
                                error: function (data) {
                                //"失敗しました";
                                },
                                complete: function (data) {
                                //"完了しました";
                                    
                                }
                            });

 

参考にしてみてください。

関連記事:【グローバル編】ajaxで取得出来たデータの中身をグローバルハンドラでチェックする時の引数

【グローバル編】ajaxで取得出来たデータの中身をグローバルハンドラでチェックする時の引数

■引数
①event
②jqxhr:取得できたデータが含まれている
③settings:URLなどのプロパティ内容

               //開始
                $(document).bind("ajaxSend", function (event, jqxhr, settings) {
                    
                    alert(settings.url + "開始");
                
                //成功
                }).bind("ajaxSuccess", function (event, jqxhr, settings) {
                    
                    alert(jqxhr.responseJSON["key1"]);
                    alert(settings.url + "::成功");
                
                //失敗
                }).bind("ajaxError", function (event, jqxhr, settings) {

                });

 

 

※jQuery1.8で、.ajaxSend()メソッドはdocumentのみにしか使用できなくなりました

関連記事:【ローカル編】ajaxで取得出来たデータの中身をローカルハンドラでチェックする時の引数

【ajax】全10種類、AJAXでリクエストを送信する時に設定できるイベントハンドラ一覧

jQueryのAJAX処理は、多種のイベントを設定できます。ここではそのイベント群と、それらがどういったタイミングで呼ばれるのかを説明します。イベントには大きく分けて、Local EventsとGlobal Eventsの2種類があります。

(引用:http://semooh.jp/jquery/cont/doc/ajax_event/)

■Local Events(ローカルイベント)

・AJAXでリクエストを送信する度にコールバック関数を設定します。例えば以下のような記述になります。

$.ajax({
  beforeSend: function(){
    // リクエスト送信前に行う処理を記述
  },
  complete: function(){
    // 通信が成功して応答が返って来た際の処理を記述
  }
});

 

■Global Events(グローバルイベント)

・DOM上のどの要素にも設定でき、AJAX通信が行われる際に呼び出されます。例えば通信中のローディング画像を出したい時などが考えられます。

$("#loading").bind("ajaxSend", function(){
  $(this).show();
}).bind("ajaxComplete", function(){
  $(this).hide();
});

 

■Global Eventsを動かしたくない通信はfalseを設定しておく

$.ajax({
  url: "test.html",
  global: false,
  // ...
});

 

■設定できるEvent一覧(Global編)

①ajaxStart (Global Event)
このイベントはAJAX通信が呼び出され、なおかつ他のAJAX通信が行われていない場合に実行されます。

②ajaxSend (Global Event)
リクエスト送信前イベント(beforeSend)の、グローバルなものです。

③ajaxSuccess (Global Event)
通信成功時イベント(success)の、グローバルなものです。

④ajaxError (Global Event)
通信失敗時イベント(error)のグローバルなものです。

⑤ajaxComplete (Global Event)
通信完了時イベント(complete)のグローバルなものです。

⑥ajaxStop (Global Event)
AJAX通信が終了し、他に動いている通信が無い場合に実行されます。

 

■設定できるEvent一覧(Local編 )

①beforeSend (Local Event)

AJAXリクエストが送信される前に呼び出されます。必要であれば、XMLHttpRequestオブジェクトを操作して追加のheaderを付与してやるなどの処理が行えます。

②success (Local Event)

通信が成功した際に呼び出されます。サーバエラーやデータエラーが発生した場合には呼ばれません

③error (Local Event)
通信が失敗した際に呼び出されます。successとerrorが同じ通信で同時に呼ばれることは、決してありません。

④complete (Local Event)
通信が完了した際に、成功/失敗にかかわらず呼び出されるものです。よしんば通信が非同期であっても、この関数は実行されます。