目次
JSONデータや配列のキーを条件にして、条件に合う配列を作るfilter関数の使い方
var json_string = JSON.parse('<?php echo $json_string; ?>;'); //PHPから配列データを受け取る //配列のキーとして「pl_color」がありその中に「ゴールド」がある var color = 'ゴールド' //ゴールドと同じものを抽出 var filter_color_ary = json_string.filter(x =>; x.pl_color === color) //又は var filter_color_ary = json_string.filter(function(item){ return item.type=="color"; });
JSONデータを読み込み、キーを指定して1行ずつデータを取得する
var json_string = JSON.parse('<;?php echo $json_string; ?>;'); //PHPから配列データを受け取る json_string.forEach( function( value ) { console.log( value.capacity ); //capacityというキーのでーたを取得 });
1番目を指定して読み取るのは簡単
data= json[0]['key_name']; //たとえ1件しかなくても1件目を取得と明示する必要がある
jQueryからHTMLの要素を制御する
jQueryのメソッド「append()」を使います。削除するには「remove」を使いますが、リストの内容を削除するには、子要素を削除する「empty()」メソッドを使います。
$('#volume_list').append('<li>リスト追加</li>'); //#volume_listは要素のid又はclassに#を追加 $('#volume_list').empty(); // volume_listのid又はclassの子要素を削除
JavaScriptでは、「appendChild」メソッドを使うと同じ事ができます。
var list = document.createElement("li"); abe.setAttribute("id", "volume_list"); abe.innerHTML = "リスト追加"; var volume_list = document.getElementById("volume_list"); volume_list.appendChild(list);
JSONデータをキーごとに1っ件ずつ読み込む
PHPでデータベースから読み込んだデータをJSON形式でJavaScriptに渡して、プルダウンを作る処理。
var data = [ { "pl_model": "iPhone" }, { "pl_model": "iPad" }, { "pl_model": "iWatch" } ] var obj = JSON.parse(data); $('#model').append($('<option>').val('').text('モデルを選択してください')); for(var i in obj){ $("#model").append("<option>" + obj[i].pl_model + "</option>"); }
参考サイトURL
jQueryでjsonデータを扱ってみる【入門編】
jQueryで、CSSの書き換えやイベントの削除変更など
CSSの書き換え
//一つの時 $('.add-data-to-cart').css('color','#fff'); //2つ以上の時 $('.add-data-to-cart').css({ 'background-color' : '#777', 'border-bottom' : '0px', });
onclickイベントの削除
<button class="add-data-to-cart" onclick="addDataToCart()">カートに入れる</button>
//削除 $('.add-data-to-cart').get(0).onclick = '';
JavaScriptの記述場所と方法
タグの属性を使ってレンダリングの処理とJavaScriptの処理を非同期にしたり、JavaScriptの処理を遅らせたりできます。
<script src="sample.js" async></script>
async属性は非同期に対象スクリプトの読み込みと実行をします。
<script src="sample.js" defer></script>
defer属性は対象スクリプトの読み込み後、実行はDOMのレンダリング後に行います。
これら属性を使うことでhead内に記述しても動作に悪影響を及ぼさずにbody内で記述したときと同じ結果を出しパフォーマンスの向上が期待できます。
参考URL:https://codeaid.jp/js-load/
function careerChange() { let element = document.getElementById('model'); let options = element.options; options[1].selected = true; }
スクリプトの発火方法
<select id="city" class="p-searchSpeed__select" onchange="cityChange()"> <option value="">都市を選択</option> </select>
//HTMLタグからJavaScriptを明示的に実行 function cityChange() { let maker_element = document.getElementById('town'); maker_element.disabled = true; let model_element = document.getElementById('lord'); model_element.disabled = true; } //JQueryを使ってDOMのIDを指定して実行 jQuery(document).ready(function(){ $("#city").change(function(){ var str = $(this).val(); alert(str); }); });
文字列操作
テキストから数字だけを取り出す
total_price = value_text.replace(/[^0-9]/g, '');
最初から特定の文字まで取り出す
「/」までの文字列を取り出す
value_text = value_text.substring(0, value_text.indexOf(“/));