{hero}

columnDefs.targets

自:DataTables 1.10

向一列或多列分配列定义。

描述

columnDefs 选项允许先定义一个列定义对象,然后将其分配给 DataTables 中的一列或多列,无需考虑列定义数组的顺序,或表中列的顺序。

columnDefs.targets 选项为 DataTables 提供必要的信息,指示列定义对象应应用于表中的哪些列。

它可以是

  • 0 或正整数 - 从左到右计数的列索引
  • 负整数 - 从右到左计数的列索引
  • CSS 选择器 - 将使用与选择器匹配的列(2.0 起)。
  • 字符串 _all - 所有列(即分配一个默认值)
  • :name 结尾的字符串 - 这将匹配使用 columns.name 定义了名称的列(2.0 起)。
  • 仅包含字母、数字、下划线和连字符的字符串 (/^[a-z][\w-]*$/i 作为正则表达式) - 类名匹配。请注意,此选项是为了向后兼容 DataTables 1.x 而提供的。这意味着您不能仅仅将元素名称用作选择器,但这在标题中仅限于 thtd

此外,targets 可以是上述列表中的单个选项,或选项的数组(不同类型的选项在数组中可以混合,如果需要)。例如,targets: [ -1, -2 ] 将针对表中的最后一列和倒数第二列。

请注意,与所有其他列配置选项不同,这些列配置选项可以应用于 columnscolumnDefscolumnDefs.targets 选项只能用于 columnDefs

类型

此选项可以采用以下类型给出:

示例

禁用第一列的过滤

new DataTable('#myTable', {
	columnDefs: [
		{
			targets: 0,
			searchable: false
		}
	]
});

禁用第一列和第三列的排序

new DataTable('#myTable', {
	columnDefs: [
		{
			targets: [0, 2],
			orderable: false
		}
	]
});

禁用 class 为 'nosort' 的列的排序

new DataTable('#myTable', {
	columnDefs: [
		{
			targets: 'nosort',
			orderable: false
		}
	]
});

使用名称匹配一列

new DataTable('#myTable', {
	columns: [
		null,
		null,
		null,
		{ name: 'action' }
	],
	columnDefs: [
		{
			targets: 'action:name',
			defaultContent: '<button>Run</button>'
		}
	]
});

相关

以下选项直接相关,在应用程序开发中可能也有用。