【发布时间】:2016-12-27 13:47:10
【问题描述】:
我有一个动态生成的表,(当前)有一个设置规则,即第一列必须是某种唯一标识符。该表是基于 json 文件生成的,但我认为这在这里并不重要。
每个表格行都有一个添加了class="delete" 的锚标记。当我单击该锚标记时,我执行以下代码:
e.preventDefault();
var idCell = $(this).closest('tr').find('td')[0];
如果我console.log(idCell),我会在我的控制台中得到<td>01</td>。
如果我console.log(typeof idCell) 我得到object。
如果我 console.log 来自 DOM 的随机元素的类型,我也会得到 object。
我的问题是:我无法从idCell 获取.val(),而我可以从直接从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。
【问题讨论】:
-
.val用于输入,也许您需要.text? -
因为 [0] 是 DOM
-
并使用
[0]将其转换为原始 dom 元素。 -
.val()是 jQuery 方法,而不是 DOM 方法。它仅适用于 jQuery 对象。[0]选择一个 DOM 对象,所以它在那里不起作用。使用.eq(0)而不是[0]。 -
只有输入字段有值,表格单元格没有。它适用于
.text():jsfiddle.net/o6mt2f16
标签: javascript jquery dom