数据表选择“第一行加载”
datatables select first row onload
我正在尝试在第一次加载数据时自动选择表的第一行,但未能做到这一点。
首次加载表时如何自动选择表的第一行?此 html 不起作用:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css" title="currentStyle">
@import "DataTables/css/demo_page.css";
@import "DataTables/css/demo_table.css";
</style>
<script type="text/javascript" src="Datatables/js/jquery.js"></script>
<script type="text/javascript" src="Datatables/js/jquery.dataTables.js"></script>
<script>
var oTable;
var firstTime = true;
$(document).ready(function () {
$("#example tbody").click(function (event) {
$(oTable.fnSettings().aoData).each(function () {
$(this.nTr).removeClass('row_selected');
});
$(event.target.parentNode).addClass('row_selected');
});
oTable = $('#example').dataTable({
"sScrollX": "500px",
"sPaginationType": "full_numbers",
"bServerSide": true,
"sAjaxSource": "services/data3.ashx",
"sServerMethod": "POST",
"fnDrawCallback": function (oSettings) {
if (firstTime) {
alert('DataTables has redrawn the table');
oTable.$('tr:first').click();
firstTime = false;
}
}
});
});
</script>
</head>
<body>
<table border="1" >
<tr><td>id</td><td><input type="text" /></td></tr>
<tr><td>name</td><td><input type="text" /></td></tr>
<tr><td>surname</td><td><input type="text" /></td></tr>
</table><br />
<table id="example" border="1" class="display">
<thead>
<tr>
<td>name</td>
<td>surname</td>
<td>id</td>
</tr>
</thead>
<tbody></tbody>
</table>
</body>
</html>
oTable.$('tr:first')
会引发错误 - $
不是oTable的函数或属性。
您必须使用
oTable.find('tbody tr:first').focus()
因为tr:first
会返回<thead>
<tr>
,而不是<tbody>
<tr>
!
我认为默认情况下您无法在HTML中聚焦整个<tr>
,因此您必须在<tr>
中添加一些CSS以使焦点可见。喜欢这个
tr {
border:1px inset white;
}
tr.focused {
border:1px solid red;
}
oTable.find('tbody tr:first').addClass('focused');
单击行时聚焦行的示例:
oTable.find('tbody tr').click(function() {
oTable.find('tbody tr').removeClass('focused');
$(this).addClass('focused');
});
以上所有内容都在这个小提琴中 ->http://jsfiddle.net/vv7Sa/
检查此链接,它应该会有所帮助: https://www.datatables.net/forums/discussion/18305/select-first-row-onload. 或者你可以试试这个:
$('#table-id').on('init.dt', function() {
$('#table-id tbody tr:eq(0)').click();
});
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 如何在生成下载文件时显示加载动画
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Emberjs应用程序加载在除Index之外的所有路由上
- 在chrome.tabs.onCreated之后加载HTML页面
- 单击F5时如何停止页面加载
- HTML5音频加载和播放获胜'我不能在iPad上工作
- 跟踪在页面加载时应用内联样式的JavaScript
- 通过单击动态加载的表中同一行的另一个字段来更新一行的字段
- 如果最后一行已经显示,如何防止jQuery加载更多停止函数
- 如何仅重新加载一行
- 如何仅在一行表中重新加载值
- 如何使用jQuery和Ajax将文本文件中的每一行加载到HTML列表中
- 如何隐藏一行表(或列表项)并在不重新加载页面的情况下更新数据存储
- 动态地重新加载一行
- 我如何使某一行出现后,即使重新加载使用jquery
- 如何确保document.body.appendChild(flash_object)"在下一行之前加载
- 这一行webpack html加载器语法是什么意思?
- 如何在使用jquery的同一表中加载远程数据后,在表的底部添加一行