MTAppGetLabel

セレクタに一致する要素を走査し、[セレクタ, ラベル, ラベル] の配列表記を MTAppMsg で一覧表示する開発支援。MTAppSetLabel の定義作りに使う。

指定したセレクタに一致する要素を走査し、各要素を一意に指すセレクタとそのテキストを [セレクタ, ラベル, ラベル] の配列表記で生成して、MTAppMsg で画面に一覧表示する開発支援メソッドです。出力をコピーして MTAppSetLabel のラベル書き換え定義の下書きに使います。主に開発時にブラウザのコンソールやボタンから手動で実行します。

構文

$.MTAppGetLabel(text);

静的メソッド($.MTAppGetLabel)です。

パラメータ

引数説明
textstring走査対象のセレクタ。カンマ区切りで複数指定できる(例 '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);

生成される出力

各要素について、次の優先順位でセレクタを決めて配列表記を作ります。

  1. 要素に id があれば #id
  2. for 属性があれば label[for='...']
  3. いずれも無ければ、最も近い 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 — 画面上部に通知メッセージを表示する(本メソッドが出力に利用)。