javascript - 未捕获的类型错误 : Object #<HTMLDivElement> has no method 'offset'

标签 javascript jquery dom

我正在尝试动态创建一个元素,然后获取该元素的中心。这是我所拥有的:

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/

相关文章:

javascript - intellij 函数参数有下划线

javascript - 在不重新加载页面的情况下提交表单数据

javascript - CSS 位置 : relative with position: absolute children 的问题

jquery - 固定卡住列的行高jqgrid 4.6

javascript - 遍历未知 DOM 的递归函数

javascript - 如果我在 div 中单击,如何使用 javascript/jquery 检查?(我在这里做了研究——我需要更好的)

javascript - 获取索引Azure搜索失败 'Response for preflight has invalid HTTP status code 403'

javascript - 如何在 redux-observable 的史诗中执行副作用?

javascript - 在联系表单上提交时不要输入 "Leave this page"

javascript - 将字符串转换为 Dom 节点 javascript?