为什么鼠标单击表格行时无法获取行id
Why I can not get the row id when mouse clicked on a table row?
我有一个index.html页面,其中有一个表:
<body>
<table class="mytable">
<tr id="1">
<td>John</td>
<td>123</td>
</tr>
<tr id="2">
<td>Kate</td>
<td>456</td>
</tr>
</table>
<script src="my.js"></script>
</body>
我已经在我的页面中包含了my.js,我试图在my.js中以以下方式获取鼠标点击行的id:
$('.mytable tr').click(function(e){
alert('clicked.'); //even did not get alert here.
var rowId = $(this).attr('id');
alert(rowId);
});
但是我没有得到点击行的行id(没有警报),我错在哪里了?
---解决方案---
糟糕的是,我有一个地方清空了桌子,这意味着根本没有tr。这就是为什么它不起作用。抱歉打扰了。
$ === jQuery
- 绑定单击侦听器的代码是否在文档就绪处理程序中执行
this.id
就足够了,可以在所有浏览器中使用
这似乎很好。。。这里有一个正在工作的JSFiddle,它使用alert而不是console.log:
http://jsfiddle.net/gfosco/KtYkJ/
根据评论和马特的回答,你应该这样包装你的函数:
$(document).ready(function() {
$('.mytable tr').click(function(e){
var rowId = $(this).attr('id');
alert(rowId);
});
});
javascript是在DOM准备好之前执行的,因此没有应用处理程序。
它对我有用。
如果不是id,你会得到什么?
最常见的问题是事件处理程序没有绑定到元素,对此,最常见的解决方案是将其封装在$(document).ready(){ ... }
中,以便在绑定到元素之前等待DOM加载。
(还有一个相对较新的.live()
函数,它在文档生命周期中添加元素时与元素绑定。)
首先,您必须检查您的js文件路径是否正确?如果这是正确的,那么我认为你的脚本中没有任何错误。。我也测试过。。。你可以查一下演示
将事件处理程序更改为
$('.mytable tr').each(function() {
$(this).click(function() {
var rowId = $(this).attr("id");
alert(rowId);
});
});
相关文章:
- Html地图对象-点击地图获取id的一部分
- 通过localStorage中的密钥获取ID
- 如何从值的Angular下拉列表中获取ID
- 如何从对象中获取id
- 使用jQuery来foreach iframe-src,并通过函数获取ID和操作
- 如何在使用node.js时从URL中获取Id
- 通过单击链接(兄弟姐妹?)从无线电输入中获取id
- 如何从Url客户端获取Id
- jQuery无法从下拉列表中获取id
- 可以'无法从列表项中获取id
- 从子输入中获取id值,并在更改时将其推送到Javascript中的数组中
- Javascript:如何从不同的ID中获取ID和name属性
- 如何获取id并在ror中基于该id显示下一个字段
- 这个_Meteor js中的Iron控制器无法访问id.如何获取id
- 使用 jQuery 从 HTML 获取 id,给出意想不到的结果
- 如何在select标记上使用javascript获取id名称
- 如何从包含HTML代码和许多UL标签及其ID的JavaScript变量A中获取
- ID
- 如何在创建保存新模型时获取id
- 对话框,数据选择器获取id
- 如何从以某个单词(regexp)结尾的字符串中获取id