我正在尝试动态创建一个元素,然后获取该元素的中心。这是我所拥有的:
function drawnode(entity, x, y) {
var ele = ""
ele += "<div class='relNode'>";
ele += "<span>" + entity.name() + "</span>"
ele += "<div>"
var node = $(ele).appendTo('#rPaper').get(0);
var offset = node.offset();
var width = node.width();
var height = node.height();
var centerX = offset.left + width / 2;
var centerY = offset.top + height / 2;
node.css("top", centerY + y).css("left", centerX + x);
}
这给出了错误
Object #<HTMLDivElement> has no method 'offset'
我最初在没有 .get(0)
的情况下尝试过它它没有给出错误,但高度和宽度都是 0。
我做错了什么?
最佳答案
您正在尝试在 DOM
对象上调用 jQuery
函数,因为 get 为您提供 DOM
对象而不是 jQuery 对象 使用 eq()
而不是 get()
来获取 jQuery 对象
var node = $(ele).appendTo('#rPaper').eq(0);
关于javascript - 未捕获的类型错误 : Object #<HTMLDivElement> has no method 'offset' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20391539/