从选定的行/单元格中获取值

时间:2012-01-11 16:27:24

标签: asp.net-mvc

我正在创建这样的表:

<table>
    <tr>
        <th>Column</th>
    </tr>

    @foreach (var item in someList)
    {
        foreach (var item1 in item)
        {
            <tr>
                <td onclick="myMethod();">@item1.name</td>
            </tr> 
        }
    }
</table>

以下是选择行时调用的方法:

<script type="text/javascript" language="javascript">
function myMethod() {
    var clickedCell = $(this);
    alert(clickedCell.text());
}
</script>

但它不起作用!如何从选择/单击的行/单元格中获取文本?

我也尝试过:

<script type="text/javascript" language="javascript">
function myMethod() {
    alert($(this).html());
}
</script>

并且它让我无效,表格已经满了。

1 个答案:

答案 0 :(得分:1)

我从这一行推断你正在使用jQuery:

var clickedCell = $(this);

如果是这种情况,让我们暂时退一步,将您的JavaScript与HTML分开。而不是:

<td onclick="myMethod();">@item1.name</td>

有内嵌JavaScript(通常不赞成),尝试这样的事情:

<td class="clickableCell">@item1.name</td>

现在它只是标记,这有点清洁。接下来,您需要将点击事件附加到渲染的单元格:

$(document).ready(function() {
    $('td.clickableCell').click(function() {
        alert($(this).text());
    });
});

现在this指的是jQuery绑定click事件的元素,因此可以在代码中轻松引用它,而不必传递来自click事件中绑定的click事件的自引用。 HTML(这是另一种方法,但继续将标记与代码混合)。