現在、多数のラジオ ボタン オプションと別のテーブルを含む ul リストがあります。ユーザーが ul リストからオプションをクリックすると、'category' および 'select' li 属性 (ハードコーディングされています) と、ユーザーがメモを書き込むためのテキストエリアを含む行がテーブルに追加されます。私はjQueryが初めてなので、今のところすべてがハードコーディングされていますが、これは明らかに理想的ではありません.
これが私が今持っているコードの例です。最初に基本リストのユーザーが次からオプションを選択します。
<ul class="current_medication">
<li class="category" title="Chronic Pain Referral">Chronic Pain Referral
<ul>
<li class="select" title="Chronic referral"><input type="radio" class="addRow1" id="radio1" name="modalities" value="1">
<label for="radio1">Chronic referral</label></li>
</ul>
</li>
次に、ユーザーがラジオ オプションをクリックしたときにテーブル行を追加する jQuery コード:
$('.addRow1').click(function() {
$('.mainTable > tbody:last').one().append('<tr style="text-align:center"><td>Chronic Pain Referral</td><td>Chronic referral</td><td><textarea name="notes"></textarea></td></tr>');
});
ご覧のとおり、ハードコーディングされているため、リストの別のオプションにはクラス「addRow2」があり、td タグ間の情報が変更された addRow1 に非常に似た jQuery 関数があります。
私が望むのは、何らかの方法でカテゴリのタイトル属性を読み取り、「li」を選択することでこれを自動化できるようにすることです。これにより、それらすべてに対して 1 つの addRow 関数を使用できます。答えは .attr() のどこかにあると思いますが、クリックされたラジオボタンからそれを読み取ってから、タイトル属性を含むラジオボタンに最も近い先行する「li」から関連情報を取得する方法がわかりません.