Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在表上保存隐藏数据的正确方法是什么?_Javascript_Jquery_Html_Jtemplate - Fatal编程技术网

Javascript 在表上保存隐藏数据的正确方法是什么?

Javascript 在表上保存隐藏数据的正确方法是什么?,javascript,jquery,html,jtemplate,Javascript,Jquery,Html,Jtemplate,我使用插件在我的表上加载数据。因为有些属性我还没有显示出来,我希望以后可以使用,所以我将它们保存在隐藏字段中,然后通过CSS的类名和jQuery的同级方法来获取它们 这是执行此类操作的正确方法,还是会被视为可怕的代码 $(函数(){ $(“#编辑”)。单击(功能(e){ e、 预防默认值(); var$this=$(this); 变量日期={ Id:$this.sibbines(“.tid”).val(), StartDate:$this.sides(“.tdate1”).val(), End

我使用插件在我的表上加载数据。因为有些属性我还没有显示出来,我希望以后可以使用,所以我将它们保存在隐藏字段中,然后通过CSS的类名和jQuery的
同级
方法来获取它们

这是执行此类操作的正确方法,还是会被视为可怕的代码


$(函数(){
$(“#编辑”)。单击(功能(e){
e、 预防默认值();
var$this=$(this);
变量日期={
Id:$this.sibbines(“.tid”).val(),
StartDate:$this.sides(“.tdate1”).val(),
EndDate:$this.sides(“.tdate2”).val(),
ClientId:$this.sides(“.tclient”).val(),
UserId:$this.sibbins(“.tuser”).val()
};
处理日期(日期);
});
});
身份证件
开始日期
结束日期
客户
{#每$T作为记录}
{$T.record.Id}
{formattate($T.record.StartDate)}
{formattate($T.record.EndDate)}
{$T.record.Client.Name}
编辑
{#/for}

建议将被欣然接受。:)

你所拥有的一切都是有效的,不过你也可以这样使用:

    {#foreach $T as record}
        <tr data-tid="{ $T.record.Id }" data-tdate1="{ $T.record.StartDate }" data-tdate2="{ $T.record.EndDate }" data-tclient="{ $T.record.Client.Id }" data-tuser="{ $T.record.User.Id }">
            <td>{ $T.record.Id }</td>
            <td>{ formatDate($T.record.StartDate) }</td>
            <td>{ formatDate($T.record.EndDate) }</td>
            <td>{ $T.record.Client.Name }</td>
            <td>
                <button class="edit">Edit</button>
            </td>
        </tr>
    {#/for}
请注意编辑按钮的更改…这里应该使用类而不是ID,因为它是重复的


作为旁注,由于主分支中有一个,在jquery1.5中,您可以执行
.data(“tuser”)
而不是
.attr(“data tuser”)
IMHO,这是从服务器生成数据时存储数据的一种完全可以接受的方式。另一个选项是在表行上生成
数据-
属性。这两种方法都是存储数据的有效方法,后者可能稍好一些。

在我看来,如果有效的话,它的功能就像您描述的那样简单。至于在隐藏字段中保存您的值,这可以做得更好。您可以尝试将值保存为变量。然后检索它们会更简单,并且您不必遍历DOM来检索它们。

如果浏览器(IE 7)可能不支持它们,那么使用
数据
是否会出现兼容性问题?你知道这种方法是否能提高性能效率吗?@Rafael-它肯定会更便宜(创建更少的元素),IE7也没有问题……它在HTML4中没有任何问题,实际上在HTML5的规范中。
    {#foreach $T as record}
        <tr data-tid="{ $T.record.Id }" data-tdate1="{ $T.record.StartDate }" data-tdate2="{ $T.record.EndDate }" data-tclient="{ $T.record.Client.Id }" data-tuser="{ $T.record.User.Id }">
            <td>{ $T.record.Id }</td>
            <td>{ formatDate($T.record.StartDate) }</td>
            <td>{ formatDate($T.record.EndDate) }</td>
            <td>{ $T.record.Client.Name }</td>
            <td>
                <button class="edit">Edit</button>
            </td>
        </tr>
    {#/for}
$(".edit").click(function() {
  var user = $(this).closest("tr").attr("data-tuser");
  //do something...
});