在表中选择具有多个锚点的锚标记文本

时间:2015-05-18 10:23:42

标签: javascript jquery asp.net-mvc knockout.js

我有一张桌子,在每个td中我都分配了一个href标签,比如这个

<tbody data-bind="foreach: binddetails">
    <tr>                         
        <td><a class="info_link" data-bind="text: Status"></a></td>
        <td class="text-right"><a data-bind=" text: Count.toFixed(0)"></a></td>
        <td class="text-right"><a data-bind=" text: Total.toFixed(0)"></a></td>
    </tr>
</tbody>

当我点击链接时,我需要获取特定td的值。我编写了jQuery方法来获取文本但我得到了null值。

$(function () {
    $('.info_link').click(function () {
        alert($(this).text());
    });
});

2 个答案:

答案 0 :(得分:1)

你可以在没有jquery的情况下解决这个问题,比如:

function YourViewModel() {
    //binddetails...
    this.showStatus = function (details) {
        alert(details.Status());
    }
};

HTML:

<tbody data-bind="foreach: binddetails">
    <tr>                         
        <td><a class="info_link" data-bind="text: Status, click: $root.showStatus"></a></td>
        <td class="text-right"><a data-bind=" text: Count.toFixed(0)"></a></td>
        <td class="text-right"><a data-bind=" text: Total.toFixed(0)"></a></td>
    </tr>
</tbody>

答案 1 :(得分:0)

如果你想获得每个td内的文字(正如你在问题中所说的那样),你可以写:

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

如果你想获得每个标签内的文本(这是你的代码试图做的),你可以写:

$('td>a').click(function () {
    alert($(this).text());
});

无论如何,你在td或a里面什么都没有显示,所以什么都不能被警告。 如果您的代码是这样的,您将得到一个值:

<td>dummy<a class="info_link" data-bind="text: Status"></a></td>

仅在第一个选项中返回一个值(返回td值)。 如果您的html是这样的,您将获得两个代码的值:

<td><a class="info_link" data-bind="text: Status">Dummy.</a></td>

在这两种情况下,您都会将“Dummy”视为警示值。