サンプルはこちら。
See the Pen dJbDp by Kazuyoshi Goto (@KazuyoshiGoto) on CodePen.
前回の「jQueryでplaceholderを表現する」を扱いやすく改良しました。
HTML
<form> <textarea class="placeholderCheck" jq-placeholder="入力してください。"></textarea> </form>
前回はフィールド直後の<span>タグをplaceholderとして利用していましたが、今回はそれを省きました。
代わりに「jq-placeholder」という独自属性を追加し、そこにplaceholderの内容を記入する形に変更しました。
JavaScript
$(function(){ $(".placeholderCheck").each(function(){ $(this).after( '<span class="placeholder">'+ $(this).attr("jq-placeholder") +'</span>' ); }); });
placeholderの挙動をする部分は前回と同じなので、異なる冒頭部分のみ抜粋しています。
ページが表示された時点で「.placeholderCheck」に「each()」関数が実行されています。
これはページ内の全「placeholderCheck」に同じ処理を行うループ関数です。
4行目では「after()」関数が実行されています。
この関数は指定された要素の後ろにコンテンツ(HTML)を挿入する関数です。
「after()」を利用し<span>タグを生成し、その中に抜き出した「jq-placeholder」の内容を収めています。
このように独自属性を使うことでタグ1つでplaceholderを表現できるようにしました。