td 元素上的 OnClick 函数返回第一列值和标头值
OnClick function on td element return firstcolumn value and header value
我有带有onlick="myfunction()"的TD元素。我希望该函数使用表中的其他值创建自定义 location.href。
function myfunction( elem ) {
var table = $('#horo').DataTable();
var idx = table.cell(elem).index().column;
var ColumnHeader = table.column(idx).header();
var FirstColumnValue = X;
location.href = "Page.cshtml?ID=" + ColumnHeader + "?Name=" + FirstColumnValue;
}
每次它一直告诉我Page.cshtml?ID=Undefined。
表是这样叫的
<table class="horo" width="1235px" style="border-style: solid; border-width: thin">
<thead>
<tr>
@foreach(DataColumn col in table.Columns)
{
<th class="cedule2">@col.ColumnName</th>
}
</tr>
</thead>
<tbody>
@foreach(DataRow row in table.Rows)
{
<tr>
@foreach(DataColumn col in table.Columns)
{
<td onclick="myfunction(this)" onmouseover="" style="width: 154px; border: 1px solid black">@row[col.ColumnName]<br></td>
}
</tr>
}
</tbody>
</table>
这是我使用 Razor 创建表的方式
DataTable table = new DataTable();
for(int i = 0; i <= data.Count(); i++){
table.Columns.Add(i.ToString(), typeof(string));
}
foreach(var col in data.First().Columns){
var val = new List<string>();
val.Add(col);
foreach(var rec in data){
val.Add(rec[col].ToString());
}
table.Rows.Add(val.ToArray());
}
非常感谢您的帮助。真的很感激
this
在你的例子中是一个窗口对象,你需要再次调用你用来实例化datatables
的元素,假设:
function myfunction( elem ) {
// assume you call datatable with
// this element = $('table#myTable')
// then use that
var table = $('table#myTable').DataTable();
// `this` inside .cell(this) should change to current clicked element
// and must be passed as function args
var idx = table.cell(elem).index().column;
var ColumnHeader = table.column(idx).header();
var FirstColumnValue = Noclue;
location.href = "Page.cshtml?ID=" + ColumnHeader + "Name=" + FirstColumnValue;
}
所以TD
元素应该是:
<td onclick="myfunction(this)">......</td>
不要使用内联脚本并直接调用函数,而是使用 jQuery .on
进行操作:
var table = $('table#myTable').DataTable();
$('table#myTable tbody').on( 'click', 'td', function () {
var idx = table.cell(this).index().column;
var ColumnHeader = table.column(idx).header();
var FirstColumnValue = Noclue;
location.href = "Page.cshtml?ID=" + ColumnHeader + "Name=" + FirstColumnValue;
});
相关文章:
- 正在尝试删除子元素的最后一个子元素
- 柱状图后面的一列
- 数据表通过分析一列的值对其进行排序
- 创建一组元素JointJS
- Datatables-如何在未显示所有列的情况下禁用表中最后一列的排序
- 获取表中每行的一列的内容,然后循环访问每个内容
- 对象数组-与其他列数据相比,增加一列
- 在最初的查询/表格绘制中只提取谷歌电子表格的一列
- jQuery Datatables:单击一列时对另一列进行排序
- 我的砖石图像只显示在一列中
- 删除“;使用javascript从pentaho中的一列中选择“[”
- 使用 Javascript 在一列中更改属性内容
- jquery插件 - 已选择 - 多项选择不在一行中列出,而是列在一列中
- 单击包含按钮的最后一列时获取表的第一列值
- 排除行选择中的最后一列
- 如何检查焦点是否离开了一组元素
- 如何将数组添加到对象中,但为每个数组元素过滤掉除一列之外的所有列
- 在jQuery中一次将元素从一列移动到另外两列
- 如何用Javascript为图表中的每一列添加更多的href元素
- 最后一列不总是显示在html表内bootstrap塌陷元素时,使用chrome浏览器