JavaScript検索の効率的な方法とは?

このQ&Aのポイント
  • JavaScriptで指定した変数や関数を検索する際、絞り込む方法と効率的な検索方法について教えてください。
  • 「setting」を含むソースコードを追う際、多くの結果が返ってきてしまい追いきれない場合にはどのような方法がありますか?
  • 見つからない場合、PHPで変数や関数が定義されている可能性があるのでしょうか?
回答を見る
  • ベストアンサー

js 検索

php javascript 以下ソースコードです。j MitubisiLodgingReservationApp.prototype.canReserve = function(lodging_reservation, setting){ var reserveFlag = false; var offset = setting.deadline_day_offset; var time = setting.deadline_time; var reserve_date = lodging_reservation.reserve_date; var deadline = moment(reserve_date + ' ' + time).subtract(offset,'days'); var now = moment(); if(now.isBefore(deadline) ){ return true; } return false; }; 3行目の「 setting.deadline_day_offset; 」なのですがソースコードを追う際、フォルダ内全検索で 「 setting 」と検索を掛けても多すぎて追いきれないというのがあるのですが この場合「var setting 」や「function setting 」などで検索を掛けて絞り込む必要があると思いますが それで検索を掛けても見つからない場合、PHPで変数や関数を定義しているという事もありますか? またどのような検索を掛けた方が効率が良くなると思いますか?

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5068/13243)
回答No.1

その「setting」は1行目の「function(lodging_reservation, setting)」という引数の定義で作られた変数です。 なので「canReserve」というメソッドを呼んでいる所を探し、呼び出す際に何を渡しているか調べましょう。

その他の回答 (1)

回答No.2

PHPとjavascriptは動作する場所が違います。 PHPはサーバマシンで動きます。 javascriptはユーザのマシンで動きます。 なので基本的にお互いに相手の関数名とか、変数名は一切関係ありません。

関連するQ&A

  • length toString

    jQueryの構文なのですが for(var i = 0; i < data.lodging_reservations.length; i++){ //var deadline = data[0].deadline; //var status = data[0].lodging_reservations[0].status; var tdTag1 = $('<td>') .attr('id','date' + i.toString()) .text(data.lodging_reservations[i].date); var tdTag2 = $('<td>') .attr('id','status' + i.toString()) .text(data.lodging_reservations[i].status); var trTag = $('<tr>'); trTag.append(tdTag1,tdTag2); $('tbody').append(trTag); } 「length」と「toString」の意味って似ていますが違うものですか?

  • jsでフラグ型をenum型に変えたい。

    以下のjavascript文があります。 [code] //平日ダイヤか土・休日ダイヤかを判定する function dayJudge(year, month, date, day) { //alert(year +" "+ month +" "+ date +" "+ day) //フラグ var weekdayFlag = true; //月?金なら立てる if(day >= 1 && day <= 5) weekdayFlag = day >= 1 && day <= 5;   else if(day==6) weekdayFlag2 = day == 6 else weekdayFlag = false; //祝日ならたおす if(year == 2013 && month == 1 && date == 1) weekdayFlag = false; else if(year == 2013 && month == 10 && date == 14) weekdayFlag = false; else if(year == 2015 && month == 3 && date == 21) weekdayFlag = false; return weekdayFlag; } [/code] をフラグ型から、enum型に変更できませんか。 フラグではAもしくはBといった2通りの回答しかございませんので、 3つめの分岐は作ることはシステム上無理なのです。 enum型なら、パターンはある程度余裕(無限じゃないかも)をもたせることできるからです。

  • moment.js

    moment.js moment.jsで秒の部分(17:00:「00」)を削るにはどうしたら良いでしょうか? 以下ソースです。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <title>サンプル</title> </head> <body> <script src="http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.2/moment.min.js"></script> <script type="text/javascript" src="jquery-1.7.2.min.js"></script> <script type="text/javascript" src="moment.js"></script> <script src="fastclick.js"></script> <script> var now = moment(); console.log(now.toDate()); // Dateオブジェクトが返される // 文字列からも生成できるし var shougatsu = moment('2015-01-01'); console.log(shougatsu.toString()); // "Thu Jan 01 2015 00:00:00 GMT+0900" // もちろんDateオブジェクトからも生成できる var kodomonohi = moment(new Date('2015-05-05')); console.log(kodomonohi.toString()); // "Tue May 05 2015 09:00:00 GMT+0900" </script> </body> </html> コンソールログで表示をしているのですが何時何分何秒の「秒」の部分を非表示にしたい場合どうしたら良いでしょうか?

  • jQueryでのclassの操作

    現在Wordpressに、文字のサイズを「小・中・大」と変えるjQueryを設置しています。 http://az-store.nrym.org/download/extend/jquery-fontsize-switcher/ Wordressではもともとbodyのclassに指定があるのですが、このjQueryを設置すると removeAttr("class")で削除されてしまいます。 そこで、もともとのClassを活かしたまま文字サイズ変更用のクラスだけを 削除&追加ができればいいのですが、 どうすればよいでしょうか? ただ、単純に「removeAttr("class")」の記述を削除してしまうと、 文字サイズ変更スイッチを押す度に、クラスが追加され続けるのでそれは避けたいです。 $(function(){ var currentstyle = readCookie('fontStyle'); if (currentstyle){ switchFont(currentstyle); }; $("li.sizeL").click(function(){ switchFont("fontL"); return false; }); $("li.sizeM").click(function(){ switchFont("fontM"); return false; }); $("li.sizeS").click(function(){ switchFont("fontS"); return false; }); }); function switchFont(className){ $("body").removeAttr("class").addClass(className); createCookie('fontStyle', className, 365); }; // cookie script http://www.quirksmode.org/js/cookies.html function createCookie(name,value,days){ if (days){ var date = new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); var expires = "; expires="+date.toGMTString(); } else var expires = ""; document.cookie = name+"="+value+expires+"; path=/"; } function readCookie(name){ var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); } return null; }

    • ベストアンサー
    • AJAX
  • javascript Param

    * @param {string} coding1 * @param {string} coding2 * @param {string} coding3 */ var App = function( coding1 , coding2 , coding3 ) { console.log(source_code); $.App.call(this, hospital_code, terminal_code, source_terminal_code); this._client.add('lodging_reservations'); /** @private {array<object>} this._lodging_reservations = []; /** @private {object} this._lodging_reservation_setting = {}; }; 今訳あって他人の作ったJavascriptのソースコードを熟読するという作業を行っているのですが 1行目~3行目の「 @param ~」って5行目の変数Appの関数に引数として渡されてるのでしょうか? 馬鹿な質問でスミマセン。

  • 現在時刻をyyyymmddhhmmss形式で変数に格納する

    いつもお世話になっております。 現在時刻を取得し、yyyymmddhhmmss形式で ひとつの変数に持たせたいとおもっているのですが 可能でしょうか? ---------- 1 #include <stdio.h> 2 #include <time.h> 3 4 int main(void) 5 { 6 struct tm *date; 7 time_t now; 8 int year; 9 int month; 10 int day; 11 int hour, minute, second; 12 13 /* 現在の日時を取得 */ 14 time(&now); 15 date = localtime(&now); 16 17 year = date->tm_year + 1900; 18 month = date->tm_mon + 1; 19 day = date->tm_mday; 20 hour = date->tm_hour; 21 minute = date->tm_min; 22 second = date->tm_sec; 23 24 return 0; 25 26 } 27 --------------- yearからsecondを結合してひとつの変数に格納することは可能でしょうか??

  • JavaScriptからphp関数の呼び出し

    javaScriptで1秒毎にphpの関数を呼び出しているのですが、 php側で、returnしている日時が動的に表示されません。 何がいけないのか教えて頂けますでしょうか? 色んな参考ページを見ると、phpの関数で動的に 動かせると書いてあるのですが、動的になりません。 -------------------------------------------------------- <jsphptest.htmlソース> <html> <head> <script type="text/javascript"src="jsphptest.php"></script> <script language="javascript"> <!-- function time() { //JavaScriptで日時表示 var now = new Date(); mon = now.getMonth()+1; day = now.getDate(); hou = now.getHours(); min = now.getMinutes(); sec = now.getSeconds(); year = now.getYear(); if (year < 2000) { year += 1900; } if (mon <= "9"){mon = "0" + mon;}; if (day <= "9"){day = "0" + day;}; if (hou <= "9"){hou = "0" + hou;}; if (min <= "9"){min = "0" + min;}; if (sec <= "9"){sec = "0" + sec;}; document.form1.j_tokei.value= year +"/"+ mon +"/"+ day +" "+ hou +":"+ min +":"+ sec; //PHP関数の呼び出し document.form1.p_tokei.value= php_time(); //1秒毎 setTimeout('time()',1000); } // --> </script> </head> <body onLoad="time();"> <form name="form1" mathod=post> JavaScript日時<input type="text" name="j_tokei" size=25><br> PHP日時<input type="text" name="p_tokei" size=25> </form> </body> </html> -------------------------------------------------------- <jsphptest.phpソース> <?php $str .= "function php_time(){"; $str .= "return('".date('Y-m-d H:i:s')."');"; $str .= "}"; echo $str; ?>

  • JS初心者です。このコードの式を教えてください

    下記はストップウォッチのコードとなります 「startTime = startTime + (new Date()).getTime() - stopTime;」 ここの式の意味がわかりません。 startTimeは 「if (!startTime) { startTime = (new Date()).getTime(); }」 の部分で、0秒にセットされている?と思います。 ですのでストップウォッチをスタートした1秒後にストップを作動させ、再度スタートさせるときの時間は 「startTime = startTime + (new Date()).getTime() - stopTime;」つまり 「startTime = 0秒 + (new Date()).getTime() - 1秒;」 と言い換えられると思います。単純に考えて1秒でストップさせてスタートする時刻も1秒目からですので、自ずと(new Date()).getTime()の中身は2秒になっちゃうと思っているのですが、どこからそのような数字がくるんだよということで絶対に違うと思います。 色々とわかりません。どなたかこの式を教えてください! <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>ストップウォッチ</title> </head> <body> <h1>ストップウォッチ</h1> <div id="sec" style="font-size:128px">0.00</div> <input type="button" value="Start!" id="run"> <input type="button" value="Stop!" id="stop"> <input type="button" value="Reset!" id="reset"> <script> (function(){ var startTime, stopTime, running = false, timerId; document.getElementById('run').onclick = function(){ run(); } document.getElementById('stop').onclick = function(){ stop(); } document.getElementById('reset').onclick = function(){ reset(); } function run() { if(running) return; running = true; if (stopTime) { startTime = startTime + (new Date()).getTime() - stopTime; } if (!startTime) { startTime = (new Date()).getTime(); } timer(); } function timer() { document.getElementById('sec').innerHTML = (((new Date()).getTime() - startTime) / 1000).toFixed(2); timerId = setTimeout(function() { timer(); }, 100); } function stop() { if(!running) return false; running = false; clearTimeout(timerId); stopTime = (new Date()).getTime(); } function reset() { if(running) return; startTime = undefined; document.getElementById('sec').innerHTML = '0.00'; } }()); </script> </body> </html>

  • フラグから区分値に置換するにはどうすればいいですか

    フラグから区分値に置換するにはどうすればいいですか。 以下はその例文です。 フラグでは、基本的に立てたり、倒したりするもので、 yesかnoの2通りしか分岐をさせることができません。 つまり、else ifが使えないということです。 一方区分値は複数の分岐をさせることができます。 なので、これにはelse ifが使えます。 それはいかに記述があります。 https://www.gixo.jp/blog/382/ そこで、以下の部分を区分値に置換するにはどのようにすればいいですか。 フラグから区分値に置換した事例を紹介してくれているサイトは皆無です。 以下は、そのコードです。 function dayJudge(year, month, date, day) { //alert(year +" "+ month +" "+ date +" "+ day) var weekdayFlag = true; if(day >= 1 && day <= 5) weekdayFlag = true; else weekdayFlag = false; if(year == 2013 && month == 1 && date == 1) weekdayFlag = false; else if(year == 2013 && month == 10 && date == 14) weekdayFlag = false; return weekdayFlag; }

  • 日付から曜日を表示したい

    現在、HTMLでJavaScriptを用いたホームページを作成しています。 プルダウンリストの日付から閏年に対応しているソースコードを参考にして組んだまでは 良かったのですが、プルダウンリストで選択された年月日から曜日の抽出がうまくいかず悩んでいます。 以下、少しわかりにくいですがイメージです。 2015   年   1   月   1  日    → ○曜日 2016       2       2 2017       3       3  ~        ~       ~ 2030       12      31 具体的なヒントやソースを頂けないでしょうか? よろしくお願いします。 原状のbodyの中身を書いておきます。  <form name="formDate"> <label>申請日:</label> <select name="selectYear" onchange="setSelectMonth()"></select> <label>年</label> <select name="selectMonth" onchange="setSelectDate()"></select> <label>月</label> <select name="selectDate"></select> <label>日</label> <select name="selectWeek" onchange="setSelectyear()" onchange="setSelectMonth()" onchange="setSelectDate()"disabled> <OPTION>日曜日<OPTION>月曜日<OPTION>火曜日<OPTION>水曜日<OPTION>木曜日<OPTION>金曜日<OPTION>土曜日 </select> </form> <script type="text/javascript"> <!--初期値設定--> var Now = new Date(); var NowYear = Now.getFullYear(); var NowMonth = Now.getMonth()+1; var NowDate = Now.getDate(); var NowWeek = Now.getDay(); <!--閏年--> function Uruu( Year ){ var uruu = ( Year%400==0 ) ? true : ( Year%100==0 ) ? false : ( Year%4==0 ) ? true : false; return uruu; } <!--年--> function setSelectYear(){ for(var y=NowYear;y<NowYear+6;y var select = document.formDate.selectYear; var option = select.appendChild( document.createElement('option') ); option.value = y; option.text = y; option.selected = ( y==NowYear ) ? 'selected' : false; } setSelectMonth(); } setSelectYear(); <!--月--> function setSelectMonth(){ var Year = document.formDate.selectYear.options[document.formDate.selectYear.selectedIndex].value; var select = document.formDate.selectMonth;// while( select.options.length ){ select.removeChild( select.options[0] ); } for(var m=1;m<=12;m++){ var option = select.appendChild( document.createElement('option') ); option.value = m; option.text = m; option.selected = ( Year==NowYear ) ? ( ( m==NowMonth ) ? 'selected' : false ) : ( ( m==1 ) ? 'selected' : false ); option.disabled = ( Year==NowYear ) ? ( ( m<NowMonth ) ? 'disabled' : false ) : false; } setSelectDate(); } <!--日--> function setSelectDate(){ var Year = document.formDate.selectYear.options[document.formDate.selectYear.selectedIndex].value; var Month = document.formDate.selectMonth.options[document.formDate.selectMonth.selectedIndex].value; var days = [31,( Uruu(Year) ? 29 : 28 ),31,30,31,30,31,31,30,31,30,31]; var select = document.formDate.selectDate; while( select.options.length ){select.removeChild( select.options[0] );} for(var d=1;d<=days[Month-1];d++){ var option = select.appendChild( document.createElement('option') ); option.value = d; option.text = d; option.select = ( Year==NowYear && Month==NowMonth ) ? ( ( d==NowDate ) ? 'selected' : false ) : ( ( d==1 ) ? 'selected' : false ); option.disabled = ( Year==NowYear && Month==NowMonth ) ? ( ( d<NowDate ) ? 'disabled' : false ) : false; } } </script>

専門家に質問してみよう