Javascript can';t在由.find找到的元素上使用.val
我有一个动态生成的表,其中(当前)有一个设置规则,即第一列必须是某种类型的唯一标识符。该表是基于json文件生成的,尽管我认为这在这里并不重要 每个表行都有一个锚定标记,添加了Javascript can';t在由.find找到的元素上使用.val,javascript,jquery,dom,Javascript,Jquery,Dom,我有一个动态生成的表,其中(当前)有一个设置规则,即第一列必须是某种类型的唯一标识符。该表是基于json文件生成的,尽管我认为这在这里并不重要 每个表行都有一个锚定标记,添加了class=“delete”。单击该锚定标记时,执行以下代码: e.preventDefault(); var idCell = $(this).closest('tr').find('td')[0]; 如果我console.log(idCell),我将在控制台中获得01。 如果我console.log(idCell的类
class=“delete”
。单击该锚定标记时,执行以下代码:
e.preventDefault();
var idCell = $(this).closest('tr').find('td')[0];
如果我console.log(idCell)
,我将在控制台中获得01
。
如果我console.log(idCell的类型)
我得到object
。
如果我从DOM中输入console.log随机元素的类型,我也会得到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>
身份证件
删去
01
当我单击删除链接时,请尝试获取表的ID,最好使用jQuery。As and
如上所述,解决方案是:
1) 使用.eq(0)
而不是[0]
将选择器保持为jQuery元素
2) 使用.text()
而不是.val()
,因为只有输入字段有值,而表格单元格没有值。以下是脚本(我觉得很好)
.val
用于输入,可能您需要.text
?因为[0]是dom,使用[0]
将其转换为原始dom元素。.val()
是jQuery方法,而不是dom方法。它只适用于jQuery对象<代码>[0]拾取DOM对象,因此它在那里不起作用。使用.eq(0)
代替[0]
。只有输入字段有值,表格单元格没有值。它可以与.text()
:e.preventDefault()配合使用;
$(".delete").bind("click",function(e) {
e.preventDefault();
var idCell = $(this).closest('tr').find('td');
idCell.html("");
});