MTAppGetLabel
セレクタに一致する要素を走査し、[セレクタ, ラベル, ラベル] の配列表記を MTAppMsg で一覧表示する開発支援。MTAppSetLabel の定義作りに使う。
指定したセレクタに一致する要素を走査し、各要素を一意に指すセレクタとそのテキストを [セレクタ, ラベル, ラベル] の配列表記で生成して、MTAppMsg で画面に一覧表示する開発支援メソッドです。出力をコピーして MTAppSetLabel のラベル書き換え定義の下書きに使います。主に開発時にブラウザのコンソールやボタンから手動で実行します。
構文
$.MTAppGetLabel(text);静的メソッド($.MTAppGetLabel)です。
パラメータ
| 引数 | 型 | 説明 |
|---|---|---|
text | string | 走査対象のセレクタ。カンマ区切りで複数指定できる(例 'label,th') |
戻り値
なし(undefined)。結果は MTAppMsg(成功メッセージ)として画面に表示されます。
使用例
// 画面内の label 要素を走査し、SetLabel 用の配列表記を一覧表示
$.MTAppGetLabel('label');
// label と th をまとめて走査
$.MTAppGetLabel('label,th');user.js での記述例
user.js(「デザイン → user.js を編集」)に書く場合は、mtappVars.screen_id で画面を判定して呼び出します。
(function ($) {
if (typeof mtappVars !== 'object') return;
if (mtappVars.screen_id === 'edit-entry') {
const label = $.MTAppGetLabel('title');
}
})(jQuery);生成される出力
各要素について、次の優先順位でセレクタを決めて配列表記を作ります。
- 要素に
idがあれば#id for属性があればlabel[for='...']- いずれも無ければ、最も近い
idを持つ親を基点に親id 要素:eq(n)(一部の特定コンテナでは:contains('テキスト'))
["#entry_fields-label", "フィールド", "フィールド"],
["label[for='custom-prefs-title']", "タイトル", "タイトル"],
["#customfield_test_maxlength-label", "test_maxlength", "test_maxlength"],第2・第3要素は同じテキスト(現在のラベル)が入ります。MTAppSetLabel で使うときは第3要素を変更後のラベルに書き換えます。
補足
- これは開発時の補助ツールです。出力されたセレクタは要素の状況に応じた最善推定で、必ずしも一意・厳密とは限りません。コピー後に確認・調整してください。
- メッセージは
MTAppMsgを使って HTML として表示されます(区切りに<br>を使用)。 - 走査対象が無い場合は空のメッセージが表示されます。
関連
MTAppSetLabel— 配列で指定したセレクタのラベルをまとめて書き換える(本メソッドの出力を使う)。MTAppMsg— 画面上部に通知メッセージを表示する(本メソッドが出力に利用)。