質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

1回答

1555閲覧

【JS】テキストボックスに入力したら、該当する学校名を取得したい

sequence

総合スコア29

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2016/12/14 05:42

編集2016/12/14 05:58

###前提・実現したいこと
リクルートのWebAPIを用いて学校名を動的に取得して一覧表示させたいです。

###現状
ある程度形にはなっております。
が、表示速度が遅く、
表示される項目にダブりがあったり、表示される数が少ないです。

非同期で取得するために
xdomainajaxを用いております。

JavaScript

1$.ajax({ 2 url: 'http://webservice.recruit.co.jp/shingaku/school/v1/?key=___&name=' + value, 3 type: "GET", 4 success: function(res) { 5 var html = res.responseText; 6 var schoolList = document.getElementById('list'); 7 var htmlList = html.split("</school>"); 8 for(var i = 0; i < html.length; i++){ 9 var option = document.createElement('div'); 10 var inputBox = $("#schoolName").outerWidth(); 11 option.setAttribute('class','select'); 12 option.setAttribute('class','over'); 13 option.setAttribute("style" , "width:" + (inputBox - 50) + "px;"); 14 if(htmlList[i]){ 15 var firstNameIndex = htmlList[i].indexOf("<name>"); 16 var htmlList1 = htmlList[i].substr(firstNameIndex + 6); 17 var lastNameIndex = htmlList1.indexOf("</name>"); 18 var nameList = htmlList1.substr(0 , lastNameIndex); 19 if(nameList != ""){ 20 option.setAttribute('value',nameList); 21 option.setAttribute('onClick','selectValue('+ '\"' + nameList +'\"' +')'); 22 option.innerHTML = nameList; 23 schoolList.appendChild(option); 24 } 25 } 26 } 27 } 28 });

###やりたいこと
よりレスポンシブを早くし、正確なデータを取得したいです。
何卒、ご教授の程、宜しく御願い致します。

###問題
文字を抽出したり、削除したりして学校名を取得しているため、
コードが乱雑になってしまっております。。。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

レスポンスが遅いのか、展開するロジックがわるいのか判断つきません
またリクルートAPIはkeyが必要なようで、検証ができないのでなんともいえません
サーバーのレスポンスが悪いならなにもやりようはないでしょう

とりあえず
success:function(res){
console.log(res);
}

でスピードのチェックをしてみれば良いでしょう。
開発ツールのネットワークajax先からの表示で戻り時間の確認もできるはずです

投稿2016/12/14 06:19

yambejp

総合スコア114835

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問