我需要保存一个值"磁盘大小"对于表中的td,然后将相同的值设置为另一个td。我正在尝试使用数据属性,但无法弄清楚如何实现这一点。这是我的代码:
function addOnDrop(x)
{
if(currentDisk < 12)
{
var td = document.getElementsByClassName("vArray-td");
td[currentDisk].innerHTML = x.html();
td[currentDisk].style.backgroundColor = "black";
td[currentDisk].data("disk-size",x.data("disk-size"));
array.push(parseInt(x.data("disk-size")));
}
}
我正在处理两个表,其中属性的值为&#34; data-disk-size&#34;应该从一个td复制到另一个。在代码中,x是第一个表td的jQuery UI.draggable对象,而td [currentDisk]是第二个表td。我想设置td [currentDisk]。&#34; data-disk-size&#34; = x。&#34; data-disk-size&#34;。我收到错误&#34; Uncaught TypeError:undefined不是函数&#34;在这一行:
td[currentDisk].data("disk-size",x.data("disk-size"));
我该怎么做到这一点?我想广泛的问题是如何在JavaScript中获取和设置自定义属性?
(这是我向Stack Overflow发表的第一篇文章,所以如果我做错了,我会道歉。)
答案 0 :(得分:0)
.data
是jQuery。
Vanilla JS方式是:
td[currentDisk].setAttribute("data-disk-size",x.getAttribute("data-disk-size"));
答案 1 :(得分:0)
正如其他人所提到的,你data
是一个jQuery方法。因此,以下行无效,因为td[currentDisk]
是DOM元素,而不是jQuery对象:
td[currentDisk].data("disk-size",x.data("disk-size"));
看起来应该更像这样:
$(td[currentDisk]).attr("data-disk-size",$(x).attr("data-disk-size"));
答案 2 :(得分:0)
如果您正在使用jQuery,我建议您始终如一地使用它:
var td = $(".vArray-td").eq(currentDisk);
td.html(x.html()).css("background-color", "black")
.data("disk-size", x.data("disk-size");
array.push(x.data("disk-size"));