目次
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(“/));


