予定があり昼で早退。
JavaScriptとjQueryで知っておくべきはjQueryオブジェクトの概念かと。
これ言われないと調べないし、調べないからわからないしで悪循環な気がする。
やったことメモ
ruby
initialize(a,b)
@a = a
@b = b
end
attr_accessor :title, :name, etc.
.new()する際に設定しなくてはいけない。(rubyなら)
Jquery
要素の取得
parent()
指定した要素の親要素を取得できる。
$('#parent_target').parent().css('background-color', 'red');
li要素の親であるulが変更される。
find()
指定した要素の子孫要素を取得できる。
引数に指定したい要素を渡すことで、子孫要素の中から引数と一致した要素を取得できる。
返る値はDOM要素の配列。not jQuery object!
$('#find').find('#find_target').css('background-color', 'blue');
siblings()
指定した要素の兄弟要素を取得できる。
引数がある場合は、引数の要素に一致するすべての兄弟要素を取得。
引数がない場合は、すべての兄弟要素を取得。
(指定した要素自身は含まない)
next()
指定した要素の次の兄弟要素を取得する。(子要素は無視する)
引数がある場合には、引数の要素の次の要素を取得。
引数を与えなかった場合には、セレクタとして指定した要素の次の要素を取得。
this
関数の中でthisを使うと、イベントの発生元となった要素を取得することができる。
イベントオブジェクト
targetやkeyCodeなどのプロパティを使うことでイベントの発生元の要素や押されたキーの種類などがわかる。
$(function() {
$('form').on('submit', function(e) {
console.log('送信ボタンが押されました');
e.preventDefault();
});
});
function(e)とすると(eはどんな文字列でも良いがeventの略が用いられる)イベントオブジェクトが渡される。イベントオブジェクトには、イベントの発生元の要素や押されたキーの情報などが入っているので、console.log(e);とすればコンソール上で確認できる。
preventDefault()
ブラウザが最初から持っているアクションをキャンセルする。
.prop()
引数で指定したプロパティを参照できる。
if (checkbox.prop('checked')) {
output += checkbox.attr('value') + '\n';
}
DOMオブジェクトとjQueryオブジェクト
DOMオブジェクトに対するメソッドとjQueryオブジェクトに対するメソッドは別物。
メソッドの返す値がjQueryオブジェクトかDOMか、それ以外なのか注意が必要。
$(DOM)とするとjQuery要素になる。
jQueryオブジェクトは配列に似た構造であるが、厳密には配列ではないのでDOMオブジェクトを配列に格納したものとは挙動が異なる。
var dom = $("form").find("label");
dom[1].hide();
↑これは動かない
$(dom[1]).hide();
↑これは動く。∵hideはjQueryメソッドだから。
「プロパティ」と「属性」
DOMメソッド
以下はプロパティと属性をそれぞれ参照したものであるが、プロパティは適切に設定されたものでなければundefinedとなる。
e.target.href; //プロパティ
e.target.getAttribute('href'); //属性
jQueryオブジェクト
$target.prop('href'); //プロパティ
$target.attr("href"); //属性
windowオブジェクト
クライアントサイドJavaScriptでは、実行されるタイミングで自動的に windowオブジェクト というオブジェクトが作られます。ブラウザに関する様々なプロパティ・メソッドを持つ。
プロパティ | 簡単な説明 |
---|---|
navigator | ブラウザ自身に関する情報をもつNavigatorオブジェクト |
location | 現在のページに関する情報をもつLocationオブジェクト |
history | ブラウザの履歴をたどる back() , forward() をもつHistoryオブジェクト |
screen | 画面に関する情報をもつScreenオブジェクト |
document | ページのHTML文書に関する情報をもつDocumentオブジェクト |
$(function() {
$('.index1').click(function() {
window.location = './index1.html';
});
});
$('.forward').click(function() {
window.history.forward();
});
コールバック
必要なタイミングで呼び出せるように、あらかじめ定義しておく関数のことをコールバックと呼ぶ。
Ajaxとは
Ajaxとは、Asynchronous JavaScript + XMLの略。
JavaScriptによる非同期通信を用いたプログラミングの手法のこと。
ユーザーがアクションを起こした際にページ全体を書き換えるのではなく、JavaScriptにサーバとの通信をさせ、ページの一部を書き換えることで、スムーズなUX(User Experience)を提供する。
API
APIとは、Application program interfaceの略で、何らかの目的を達成するための処理のまとまりのこと
HTTP通信
ブラウザ(=クライアント)からサーバへの通信を HTTPリクエスト 、
サーバからブラウザへの通信を HTTPレスポンス
HTTPリクエスト
- リクエスト行
- リクエスト・ヘッダ
- ボディ部
> GET / HTTP/2
> Host: www.google.co.jp
> User-Agent: curl/7.54.0
> Accept: */*
1行目がHTTPメソッド、パス(この場合は”/” = ルート)、HTTPのバージョン情報
2行目〜がヘッダ部分
HTTPレスポンス
- ステータス行
- レスポンス・ヘッダ
- ボディ部
ステータス行
種類 | 概要 | 説明 |
---|---|---|
1xx | Informational 情報 | リクエストは受け取られた。処理は継続される。 |
2xx | Success 成功 | リクエストは受け取られ、理解され、受理された。 |
3xx | Redirection リダイレクション | リクエストを完了させるために、追加的な処理が必要。 |
4xx | Client Error クライアントエラー | クライアントからのリクエストに誤りがあった。 |
5xx | Server Error サーバエラー | サーバがリクエストの処理に失敗した。 |
ステータスコード | 説明 |
---|---|
200 OK | OK。リクエストは成功し、レスポンスとともに要求に応じた情報が返される。 |
301 Moved Permanently | 恒久的に移動した。リクエストしたリソースが恒久的に移動されているときに返される。Location:ヘッダに移動先のURLが示されている。 |
302 Found | 発見した。リクエストしたリソースが一時的に移動されているときに返される。Location:ヘッダに移動先のURLが示されている。 |
403 Forbidden | 禁止されている。リソースにアクセスすることを拒否された。リクエストはしたが処理できないという意味。 |
404 Not Found | 未検出。リソースが見つからなかった。 |
410 Gone | 消滅した。リソースは恒久的に移動・消滅した。どこに行ったかもわからない。 |
500 Internal Server Error | サーバ内部エラー。サーバ内部にエラーが発生した場合に返される。 |
503 Service Unavailable | サービス利用不可。サービスが一時的に過負荷やメンテナンスで使用不可能である。 |
コメント