0

jQuery テンプレート ( https://github.com/jquery/jquery-tmpl ) と、2 つのリストを含む Object() を取得しました。

<!-- HTML -->
<table>
        <thead>
            <tr>
                <th>
                    Some value
                </th>
                <th>
                    A Button
                </th>
            </tr>
        </thead>
        <tbody id="results-body">
        </tbody>
    </table>
<!-- HTML -->

var templateHTML = "{{each list1FromTemplate}}<tr><td>{{= Value}}</td><td><input type='button' name='alert' value='Alert' class='alert'/></td></tr>{{/each}}";

 var results = new Object();
     results.list1 = list1Data; //Retrieved from an ajax call
     results.list2 = list2Data; //Retrieved from an ajax call

$.tmpl(templateHTML, { list1FromTemplate: results.list1, list2FromTemplate: results.list2 }).appendTo("#results-body");

//Here goes the question:

$(".alert").click(function () {

alert(
//Alert the value from {{= Value}} in the same row
);

});

クラスアラートのボタンを除いて、すべて正常に動作します

クラス「アラート」のボタンがクリックされたときに、同じ行の値「{{= Value}}」からデータを取得する方法???

アップデート:

tmplItem() などを使用して値を取得する方法はありますか?

4

2 に答える 2

0

各 td に id を与え (id として for ループ カウンター値の場合があります)、次のようにアラート関数を呼び出します。

$(.alert).click(function(){
    $('#td_id').val();
});
于 2013-01-14T19:35:34.307 に答える
0

td にクラス/ID を指定するか、値をクラス/ID でスパンにラップしてから、jquery を使用してalert($(this).closest('tr').find('.value-wrapper').text())(コメントを回答に昇格) のようにアクセスします。

もう 1 つのオプションは、クリックされている入力にプロパティ (例: data-value) を設定することです。alert($(this).attr('data-value'));

于 2013-01-14T19:30:20.673 に答える