从表格单元格获取变量

时间:2015-12-04 16:50:04

标签: javascript html model-view-controller

我在表格中显示合同和服务列表,这些合同和服务都有一个ID。

当您单击合同或服务的单元格时,它应该到达详细信息页面。我将ContractId / ServiceID保存在id属性中,如下所示:

<td class="TableCell" id="@ID">
    Sometext
</td>

我在这里找回它:

var id = this.id;    
// the following is an MVC thing, don't worry about it
var url = '@Url.Action("Details", "services", new { id = "__id__" })'; 
window.location.href = url.replace('__id__', id);

这一切都很好,但是现在我想在表格单元格中保存另一个变量,如下所示:

<td class="TableCell" id="@ID" value="@Variable2">
    SomeText
</td>

我知道这不起作用,但最好的办法是什么?使用id属性传递变量是一个好主意吗?

1 个答案:

答案 0 :(得分:2)

首先:

  

使用id属性传递变量是个好主意吗?

如果您传递的ID可以被认为是该元素的ID,那么它肯定没有问题。如果它不是那个元素的ID ,而是其他东西的ID,那么从概念上来说这不是一个好主意。

从更一般的意义上讲,在HTML属性中存储其他数据的常用方法是使用data-属性:

<td class="TableCell" data-id="@ID" data-var2="@Variable2">

如果您使用a modern browser,则可以使用dataset属性访问它们:

var id = this.dataset.id;
var val2 = this.dataset.var2;

否则,您可以使用getAttribute方法使用完整的属性名称:

var id = this.getAttribute('data-id');
var val2 = this.getAttribute('data-var2');