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);
});
});