0

我有一个 jQuery 模板(https://github.com/jquery/jquery-tmpl)和一个包含两个列表的 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 一个 class/id 或将 value 包装在一个带有 class/id 的 span 中,然后使用 jquery 访问它,例如alert($(this).closest('tr').find('.value-wrapper').text())(将评论提升为答案)。

另一种选择是在被点击的输入上设置一个属性(例如数据值),然后您可以使用它访问alert($(this).attr('data-value'));

于 2013-01-14T19:30:20.673 回答
0

为每个 td 提供 id(可能是循环计数器值作为 id)并像这样调用警报函数:

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