ECサイト運営で使える便利なjQuery
はじめに
こんにちは、サポート部の井上です。今回はASPを使用したECサイト制作で使える、便利なjQueryをいくつか紹介します。
ASPでのECサイトは便利な反面、よく「ASP側で生成されている要素があるから細かい調整がしにくい」といった声をいただきますが、jQueryを使用することで比較的ソースコードの調整もユーザー側で可能になります。
目次
1.文面を変更する
2.URLを取得して表示を切り替える
3.要素の数に応じてHTMLを書き換える
4.クラスが付いていない箇所にクラスを付与する
5.クラスが付いている箇所にテキストを割りこませる
1.文面を変更する
ASPでECサイトを制作していると、しばしば文字がデフォルトで入力されており、管理画面から変更できない事があります。そういった文章を取得して、指定の変更する事ができる設定です。
$(function() {
//"「sysMypage」というクラスの中にある文章を対象とします
$(".sysMypage").each(function(){
var replcaceTxt = "変更後文章をここに";
var txt = $(this).html();
$(this).html(txt.replace(/変更前文章/g,replcaceTxt));
});
});
上のケースでは、「変更前文章」と書かれている部分が全て「変更後文章をここに」という文章に変更されます。
2.URLを取得してCSSを切り替える
URLの文字列を取得して、該当箇所にクラスを付与する事ができます。
たとえば、「該当のURLが入っている商品のみカートボタンを表示させない」等の設定が可能になります。今回はカートボタンに”.sysCartButton”というクラスが付いている場合で説明させていただきます。
$(window).bind("load", function(){
//"URLに「aaaaa」という文字列があれば
if(document.URL.match('aaaaa')) {
//".sysCartButtonにnewClassというクラスを付与する
$(".sysCartButton").addClass("newClass");
}
});
このnewClassに対して、以下の様なCSSを入力する事で「URLに”aaaaa”という文字列がある時のみ”カートボタン(.sysCartButton)”を表示させない」という設定が可能です。
CSSはこちら。
.newClass{
display:none;
}
3.要素の数に応じてHTMLを書き換える
ページ内にある要素の数に合わせてHTMLを書き換える事ができる設定です。
例えばこれを応用する事で「カート内の商品が4件以上もしくは2件以下だったら文章を表示させる」等の設定が可能です。
$(function(){
//"#sysBasket .sysItemListAreaの要素毎に処理する
$("#sysBasket .sysItemListArea").each(function () {
//".sysItemListAreaの要素内のliの数をカウント
var num = $(this).find('ul.nav li').length;
//"もしも#sysBasket .sysItemListArea内のul.nav liが4件以上もしくは2件以下だったら
if(num >=4 || num <=2){
//"HTMLを書き換えます
$(this).find('ul.nav li').html('<b>HTMLの書き換え</b>');
}
});
});
4.クラスが付いていない箇所にクラスを付与する
ASPでECサイトを制作していると、しばしばHTMLがデフォルトで入力されており、管理画面からクラスが付与できない事があります。そのような際に、任意の箇所にクラスを付与する事ができる設定です。
$(function(){
//"セレクタで指定したdivタグにクラスが付いていない場合、「newClass」というクラスを付与します。
$(".sysFormField div").addClass("newClass");
});
5.クラスが付いている箇所にテキストを割りこませる
4との合わせ技で、クラスが元々無かった部分に文言を付与する事ができます。
$(function(){
//"付与したtextareaタグにテキストを割り込ませます。
$(".textinput").text("このテキストが備考欄に入力されます")
});
おわりに
jqueryやJavaScriptはHTML初心者には少しとっつきにくい印象がありますが、非常に便利です。フロント側で出来ることの幅も大きく広がりますので、ぜひチャレンジしてみてください。
井上