我在表格中显示合同和服务列表,这些合同和服务都有一个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
属性传递变量是一个好主意吗?
答案 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');