ユーザーがボタンをクリックしたときにテキストエリアのテキストにタグを付けるために使用するjavascriptがあります。今私はただ一つのボタンのために働くようになった。合計でタグ付けできる必要がある8つのボタンがありますが、各ボタンIDに対して同じコードを何度も繰り返したくないので、forループを試しましたが、これはうまくいきませんでした。私は確信していない理由は、しかし。編集button0、編集ボタン1、編集ボタン2、...、編集button8フォームのテキストにタグを付けるためのforループ付きjavascript
私はループのボタンのIDを確認するには、アラートを追加しました:
これらは、ボタンIDです。
ボタンをクリックしても、ボタンIDはedit-button8であり、そのボタンに接続されているタグが追加されます。
これがなぜ機能しないのか、どうやったらそれをやるべきかについてのアイデア。
/*globals document*/
(function ($) {
"use strict";
$(document).ready(function() {
for (i=0;i<8;i++) {
$("#edit-button"+i).click(function() {
alert("#edit-button"+i);
var tag = $("#edit-button"+i).attr("value");
var id = "protocol"; /* id of textarea */
var element = document.getElementById(id); /* HTML element object */
var start = element.selectionStart; /* start pos of selection */
var end = element.selectionEnd; /* end pos of selection */
var text = element.value; /* whole text */
var prefix = text.substring(0, start); /* part before selection */
var selected = text.substring(start, end); /* selected text */
var suffix = text.substring(end); /* part after selection */
/* insert tags in selection */
selected = "["+tag+"]" + selected + "[/"+tag+"]";
/* update HTML object */
element.value = prefix + selected + suffix; /* selected text */
element.selectionStart = start; /* new start pos */
element.selectionEnd = start + selected.length; /* new end pos */
return false;
});
}
});
})(jQuery);
ボタンのクラスを追加できるかどうかわかりません。 javascriptはdrupalモジュールの一部であり、drupalのapiは少し柔軟性がありません。 – numfar
@ user1361931あなたは間違ったことが分かりました。今すぐ解決策を考えてください。 –
ボタンにいくつかのクラス名を追加することができました。上記のeach()関数の解法はうまく動作しているようです。 :) – numfar