不能在.find

时间:2016-12-27 13:47:11

标签: javascript jquery dom

我有一个动态生成的表,其中(当前)有一个规则,第一列必须是某种唯一标识符。该表是基于json文件生成的,我不认为这在这里非常重要。

每个表格行都有一个添加了class="delete"的锚标记。当我点击该锚标签时,我执行以下代码:

e.preventDefault();
var idCell = $(this).closest('tr').find('td')[0];

如果我console.log(idCell),我的控制台会收到<td>01</td>。 如果我console.log(typeof idCell)我得到object。 如果我在控制台中记录了DOM中随机元素的类型,我也会获得object

我的问题是:我无法从.val()获取idCell,而我可以从直接从DOM过滤的任何元素访问.val()

我主要担心的是为什么会这样(不)发生,如果这类问题存在修复,如果你愿意和我分享,我将非常感激。

编辑1: 这里有一个示例表。

<table>
    <tr>
        <th>
            id
        </th>
        <th>
            delete
        </th>
    </tr>
    <tr>
        <td>
            01
        </td>
        <th>
            <a href="#" class="delete">delete</a>
        </th>
    </tr>
</table>

当我点击删除链接时,请尝试获取表格的ID,最好使用jQuery。

2 个答案:

答案 0 :(得分:0)

作为JJJ和 提到Daniel A. White,解决方案是:

1)使用.eq(0)而不是[0]来保持选择器是一个jQuery元素。

2)使用.text()代替.val(),因为只有输入字段具有值,而表格单元格不具有此值。

答案 1 :(得分:0)

这里的脚本(我工作正常)

$(".delete").bind("click",function(e) {
    e.preventDefault();
    var idCell = $(this).closest('tr').find('td');
    idCell.html("");
});