クラス/名前のすべての要素を処理するのではなく、特定のテーブル行にjQuery関数を制限する必要があります。追加した後に一意のIDを取得する方法を知っていれば、ここでIDを使用できます。フィールドを追加するたびにユニークなIDを作成しなければならないので、これは簡単でエレガントな方法ではないと思います。ですから私は、自分が作業している子入力フィールドの正確な親を得る正しい方法、または親を選択する別の多分洗練された方法をfind()がどのように使用するのかを探しています。に行を追加します。この名前またはクラスのすべての要素ではなく、テーブル行の現在の子要素で作業する
<table>
<tr>
</tr>
<tr class="service_list">
<td><a href="#" onclick="add_row();">+</a></td>
</tr>
</table>
機能「add_row()」のように見える形で テーブル:ここに尋ねた他の質問の助けを借りて
、私は次のコードを作成しましたテーブル
function add_row()
{
$('table tr.service_list:last').after('<tr>\
<td>\
<select class="profile service" name="service_list[]">\
<option value="50">service50</option>\
<option value="100">service100</option>\
</select>\
</td>\
<td>\
<input type="text" name="rate[]" value="1" />\
</td>\
<td>\
<input type="text" name="single_price[]" value="50" \>\
</td>\
<td>\
<input type="text" name="total[]" value="50" />\
</td>\
</tr>');
}
ユーザーは、このjQueryのは
を誘発している「attributeStartsWith」セレクタのおかげで選択フィールドを変更「率」フィールドが変更されたときに、これは、すべてのフィールドの値が「合計」は変更されます始まる名前総額もちろん
$(document).on('input', '[name^=rate]', function(e) {
var rate = $('input[name^=rate]').val();
var orig_price = $('[name^=single_price]').val();
var total = orig_price * rate;
$('[name^=total]').val(total);
});
それが今であるように計算するトリガされます。クラスを使うと同じことが起こります。
ありがとう、私はそれを試みます。また、クラスヒントのおかげで私は明確にするために私のコードでそれを使用します。 – user6329530