• ベストアンサー

jQueryの略記について

HTTP通信でJSON形式のデータを読み込むメソッドがあります。 サンプルなどをみると下記のように書かれています。これは略記で書かれているのでしょうか??? $.getJSON() ※引数は省略しています。 上記のコードを略記で書くと $.getJSON() 略記で書かないと jQuery.getJSON() という事で合っていますか。 すみませんが宜しくお願いします。 では、失礼します。

質問者が選んだベストアンサー

  • ベストアンサー
  • asciiz
  • ベストアンサー率70% (6643/9411)
回答No.1

「$」は、単なる一記号に見えますが、実は関数名です。 つまり文法上、「$.getJSON()」ってのは、「関数 $ の getJSON メソッド呼び出し」です。 そしてjQuery においては、jQuery-x.x.x.js の冒頭で >// Map the jQuery namespace to the '$' one >window.$ = jQuery; こう書かれているので、$.getJSON() は jQuery.getJSON() と同一となり、まあ短い方が楽なので、jQuery前提のjavascriptではみんな $.~で書かれているのですね。 >略記で書かないと >jQuery.getJSON() >という事で合っていますか。 はい、こちらでOKです。 というか、複数のJavaScriptライブラリを利用しようとする場合、$ の定義が上書きされて、自分の思った関数・メソッドを呼び出せなかったり、エラーになったりする場合があります。 そんな時は、「jQuery.getJSON()」と明記する方が安全です。確実に、jQuery の getJSONを呼び出せます。

Nanchatte_PG
質問者

お礼

回答ありがとうございます。 また説明していただきありがとうございます。 お陰様でスッキリしました。

関連するQ&A

  • getJSONで受け取れるよう出力するには?

    ■前提 ・$.getJSONでAPIからデータ取得するサンプルがあります ・この時、第1引数のURLを叩くと、データが表示されます $.getJSON('http://hoge … &callback=?') .error( ajaxError ) .success(function( data ){ ・動作確認のため、「第1引数のURLで表示されたデータ」を取得(コピペ)して、「piyo.php」としてアップロードしてみました ■質問 ・$.getJSON第1引数を「piyo.php」へ変更すると、同じようにデータ取得できると思ったのですが、うまくいきません ・何故でしょうか? ・「json値」をサーバが返すようにすれば良いのでしょうか? ・それはどうやるのでしょうか? ・「echo json_encode?」「header('Content-Type:?」それとも、拡張子がjsonじゃないといけないのでしょうか?

    • ベストアンサー
    • AJAX
  • jQuery.getの引数dataで動的にするには

    お世話になります。 jQuery.get()の第二引数dataによって、動的にJSONを取得したいです。 第一引数urlがhttp://test.com 第二引数が{id:1,name:tanaka}としてgetした場合 http://text.com?id=1&name=tanaka とリクエストしてると考えてよいのでしょうか。 ある大手サイトでget()時、dataによって取得できるJSONが違うのですが、 そのURLの最後に拡張子がありません。 JSONは拡張子が無くても良いというのを知りましたが これはJSONの形式でそのように動的に発行しているのでしょうか。 もしくはサーブレットあたりが動いて動的にさせてるのでしょうか。 たぶんPHPとかではないですよね。 上の例でいくと http://text.com?id=2 http://text.com?id=5 http://text.com?id=15 これで取得できるのが違います。 どうなってるのかさっぱり判りません。 すみません、よろしくお願いいたします。

  • Jqueryについて

    質問失礼します。遅延情報を掲載していただいているサイトからjson形式でデータを取得し自前で用意した鉄道名称データと比較しデータが同一のがあったらXXXが遅延しています、無かったら遅延情報はありませんと記述するHTMLを書きたいのですがjqueryにてWEB上のJSONデータを取得しそれを比較の為に変数に代入するやり方がどうしてもわかりません私も至らぬ点があるかと思いますがご教授いただければ幸いです。

  • jquery PHP 値 ajax

    失礼します。現在jqueryで作成した2次元配列をPHP側に渡したいのですが上手くいきません。 jquery側のコンソールで確認した際にはsuccessの処理が行われ配列の中身がjson形式で表示されるのですが、その内容をPHP側で確認しようとするとNULLが返ってきてしまいます。 何卒ご教授よろしくお願いいたします。 html側 $(function(){ // 送るデータ形式はJSONでなければ、PHP側でエラーが出る.のでJSON.stringify()でJSON形式に変換 send_data= JSON.stringify(data); // 送信処理 $.ajax({ url: "ajax.php", // 送信先のPHP type: "POST", // POSTで送る contentType: "Content-Type: application/json; charset=UTF-8", //必須ではなさそうだが、サーバ側との整合のために明示しておいた方がよい。 // dataType: 'json', //受信形式 必須ではなさそうだがサーバ側との整合のために明示しておいた方がよい。 data:send_data //JSON形式の送信データ }).success(function(data, status, xhr) { // 通信成功時の処理 console.log("success"); console.log("data ="+data); console.log("status ="+status); console.log("xhr ="+xhr); }).error(function(xhr, status, error) { // 通信失敗時の処理 console.log("error"); }).complete(function(xhr, status) { // 通信完了時の処理 console.log("fin"); }); }) }) PHP側 二通り試してみました。 <?php //php://inputはPOSTの生データを取得できる $json = file_get_contents("php://input"); //JSON形式データをPHPの配列型に変換 $data = json_decode($json); var_dump($data) ; //POSTできたデータを格納 $hoge = $_POST['data']; var_dump($hoge);

    • ベストアンサー
    • AJAX
  • Jquery と JqueryUIについて

    現在、Jquery と JqueryUIを使ってプログラムを書いています。上手く動作しないので以下について教えてください。 やりたいことは、ボタンを押すと文字があらわれたり消えたりするという動作を実現したいと思っていますが、今は、ボタンと文字が表示されるのみで、ボタンを押しても全く動きません。 現在書いているコードは以下のとおりです。 ---- <html> <head> <script type="text/javascript" src="js/jquery-1.7.1.min.js"></script> <script type="text/javascript" src="js/jquery-ui-1.8.17.custom.min.js"></script> <script> $(function() { $('#button').click(function(){ $('#sample-text').show(); }); }); </script> </head> <body> <input type="button" id="button" value="ボタン"> <p id="sample-text">Hello World!</p> </body> </html> ------------------- Jqueryのバージョンは、最初、UIとの互換性を考え、1.3.2を使っていましたが、動かないため、現在は新しいバージョンで試してみたところです。(1.4.4でもだめでした) JSファイルの場所は、上記htmlファイルと同じ階層のjsディレクトリ内です。 また、補足ですが、これが上手くいけば、script内の show メソッドのかわりに toggleを使いたいと考えています。 上記コードで間違っている部分がわかる方がいらっしゃいましたら教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • AJAX
  • このJSONデータをjQueryでどう処理すれば?

    質問させてください。 JSONデータの扱い方に悩んでおります。 以下の2つのコードはここでは見にくいため次のサイトに載せておきます。 http://codepad.org/CSN6X94T http://codepad.org/aPiIzcOR data.json [ { "pk": 1, "model": "ac.ni", "fields": { "kamoku_alpha": "SUUGAKU", "kamoku": "数学", "hissu": 0, "kamoku_hira": "すうがく" } }, { "pk": 2, "model": "ac.ni", "fields": { "kamoku_alpha": "EIGO", "kamoku": "英語", "hissu": 0, "kamoku_hira": "えいご" } }, { "pk": 3, "model": "ac.ni", "fields": { "kamoku_alpha": "KOKUGO", "kamoku": "国語", "hissu": 1, "kamoku_hira": "こくご" } } ] のようなJSONデータがあります。 この中でそれぞれのfields内のkamoku、kamoku_hira、kamoku_alphaを取得したいと考えています。 jQueryにてどのように書けば宜しいのでしょうか? $(function(){ $.getJSON('./data.json', function(data){ $.each(data, function(){ $.each(data.filter, function(){ alert(this.kamoku); }); }); }); }); の型で考えたのですが良く分かりませんでした。 アドバイス頂けたら幸いです。 jQueryは1.11.1です。

  • JQuery+JSONでChromeでローカル表示ができない?

    JQuery+JSONでChromeでローカル表示ができない? http://image.gihyo.co.jp/assets/files/design/serial/01/jquery-site-production/0019/demo19-1.html 上記ページのサンプルをローカル上で検証しています。 safari、firefoxなどは問題なくサンプル通りの挙動なのですが、Chromeは表示されません。 試しにWeb(http)上にアップするとChromeも問題ありません。 これはブラウザの仕様なのでしょうか。Chromeのローカルで確認できるような記述方法があるのでしょうか。 宜しくお願いします。

  • イベント登録とメモリリークについて(jQuery)

    下記のような【html】をjQueryのAjax関数とhtml()を利用した【処理フロー】で、動的にDOMに追加しているのですが、以下の【質問】にお答え頂けないでしょうか。 【html】 <div> (省略) <a href="javascript:void(0);" onclick="foo({'arg1':'str1','arg2':'str2','arg3':num3…});">テスト</a> (省略) </div> ※foo関数の引数は初期化配列を指定、引数値はサーバサイドで動的に変化させてクライアントに出力 【処理フロー】 a要素クリック→foo関数実行→jQueryのAjax関数でfoo関数引数の配列値をサーバに送信→レスポンスとして新たな【html】を受信して、jQueryのempty()、html()を使用して同じ要素配下を置き換え ※$.ajax({..., data:配列オブジェクト, ...}); のように、dataプロパティにfoo関数の引数をそのまま渡しています 【質問】 1.上記のonclickの内容が原因かどうかは分かっていませんが、繰り返しフローを走らせると、各ブラウザ(IE8,FireFox3.6,safari5,Opera11)でメモリリークが発生します。上記のonclickの関数に初期化配列という定義に問題はあるでしょうか。 2.foo関数の引数にある配列は、要素がクリックされたタイミングでオブジェクト化される認識であっていますでしょうか。また、上記のフローだと開放される(参照されなくなる)タイミングは、Ajax通信完了後という認識であっていますでしょうか。 3.Webで調査した範囲では、jQueryのempty()、html()はどちらも削除/置き換え前の要素に紐づいたイベントは削除されるようなのですが、上記のようにhtml()で追加する要素にonclickイベントを定義している場合も、次回empty()、html()で置き換え時にイベント削除されるでしょうか。 4.1に関連しますが、上記の内容、処理フローにおいて、置き換え前の要素セットやfoo関数の引数がメモリリークを引き起こす可能性はあるでしょうか。 どうぞよろしくお願いいたします。

  • jQueryで複数ファイル読み込みを検知する方法

    jQueryでHTTP通信でjsonファイルを取得する場合、 ファイルが一つだけなら $.ajax({ url: path, type: "GET", dataType: "json", success: function(json, status, xhr) { }, error: function(xhr, status, errorThrown) { }, complete: function(xhr, status) { } }); のようにsuccessコールバックなどでデータを取得すればよいのですが 複数ファイルをajax()により取得し、全てのファイルダウンロードが完了したのを 待ってから処理を走らせたい場合どうすればよいのかわかりません。 任意の型のイベントを発生させて、それに対するハンドラ割り当てができればよいのですが javascriptに不慣れなこともあり、調べてもその方法がわかりませんでした。

  • jQueryの導入方法について

    jQueryの導入が上手くいかず、全く動かなくて困っております。 サイト(http://labs.opentone.co.jp/?p=4923)から説明があったURLから実装に必要なjQueryをダウンロードしました。 ・jquery.flexslider.js ・flexslider.css そして下記コードを入力しました。 <link rel="stylesheet" href="flexslider.css" type="text/css"> <script src="jquery.min.js" type="text/javascript"></script> <script type="text/javascript" src="jquery.flexslider.js"></script> さきほど取得した画像をスライドショーを表示させたい場所に下記の通り指定します。 画像名を「sampleX.png」としています。 <div class="flexslider"> <ul class="slides"> <li><img src="images/sample1.png"></li> <li><img src="images/sample2.png"></li> <li><img src="images/sample3.png"></li> <li><img src="images/sample4.png"></li> <li><img src="images/sample5.png"></li> </ul> </div> 最後にflexfliderの関数を呼び出してスライドショーを実行させます。 $("document").ready(function(){ $('.flexslider').flexslider(); }); 以上のことを行ってjQueryらしい動作どころか画像すら表示されませんでした。(画像パスは入力し直しています) 他にダウンロードするものやコードを書かなければならないことなど、動作に必要なものについて教えて頂けませんでしょうか。 ※上記以外のことは一切行っておりません 何卒よろしくお願い致します。

    • ベストアンサー
    • CSS