jQuery';保留elment';谁的数据?

jQuery';保留elment';谁的数据?,jquery,Jquery,我有一个函数,可以创建元素并将它们插入表中。以下是该函数: jQuery: function insertRow(table, key, sort, cols) { var tr = $('<tr></tr>'); tr.data("key", key); //Used for reference tr.data("sort", sort); //Used for sorting within the table $.each(cols, function

我有一个函数,可以创建
元素并将它们插入表中。以下是该函数:

jQuery:

function insertRow(table, key, sort, cols) {
  var tr = $('<tr></tr>');
  tr.data("key", key); //Used for reference
  tr.data("sort", sort); //Used for sorting within the table
  $.each(cols, function(i, value) {
    $( '<td></td>' ).text(value).appendTo(tr);
  });
  table.append(tr);
}
函数insertRow(表、键、排序、列){
var tr=$('');
tr.data(“key”,key);//用于参考
tr.data(“sort”,sort);//用于表内的排序
$.each(cols,function(i,value){
$('').text(value).appendTo(tr);
});
表3.追加(tr);
}
插入工作正常,但我在这里尝试访问表行,以便将它们移动到单独的表中:

试图访问数据(其中“移动行”按钮位于
中):

$(“#移动行按钮”)。打开(“单击”,函数(){
var myArray,key,
行=$(this).closest('table').find(“tr”);
$.each(行,函数(i,行){
key=row.data(“key”);/“row.data不是函数”

//MyReal.Press(行数据(“密钥”)),您可以创建一个代码片段或小提琴来显示问题吗?FWIW:jQuery的代码>数据< /代码> 1)在读取上缓存值,2)在写入时不更新DOM数据属性;只有HTML中存在数据属性。如果需要“保存”,则直接考虑使用<代码> AtTo(“数据FoO”)< /COD>。但是,当前的问题是使用
row.data
,如错误所示:row.data不是函数。
row
是HTMLElement,不是jQuery对象。使用
$(row).data..
;它将行包装在一个jQuery对象中,该对象具有
data
方法。那么最初出现的问题可能与此无关..YMMV,但从真正的源代码开始。@user2864740啊,你肯定是对的,我忘了使用
$()
。我试试看。除了将
键作为数据属性之外,还有其他选择吗?@CurtisUpshall可以通过对数据进行边带处理来实现(即,将数据和任何元素作为JS对象进行跟踪;“框架”通常使用这种方式),但它将改变当前非常以DOM为中心的结构。我可能只是/最初将
tr.data(“key”,key)
更改为
tr.attr(“data key,key)…
就像它是HTML一样。请注意,这也将值限制为可以转换为字符串的内容。
$( '#move-rows-button' ).on("click", function() {
  var myArray, key,
  rows = $(this).closest( 'table' ).find("tr");
  $.each(rows, function(i, row) {
    key = row.data("key"); //"row.data is not a function"
    //myArray.push(row.data("key")); <- desired action
    console.log(key);
  });
});