Jquery-动态附加元素的位置

Jquery-动态附加元素的位置,jquery,append,Jquery,Append,.appendI正在尝试获取动态附加元素的位置() 首先,我有一个创建元素的函数 var createElement = function (elementType, id, name, className, innerText) { var el = document.createElement(elementType); if (id) {el.id = id;} if (name) {el.name =

.appendI正在尝试获取动态附加元素的位置()

首先,我有一个创建元素的函数

var createElement = function (elementType, id, name, className, innerText) {

    var el = document.createElement(elementType);
    if (id)         {el.id          = id;} 
    if (name)       {el.name        = name;}
    if (className)  {el.className   = className;}
    if (innerText) el.appendChild(document.createTextNode(innerText));}

    return el;           
}
要添加元素

$('#parent').append(createElement ( "div", "child"));
这似乎很管用。但是,我需要确定孩子管理内容的最高位置

alert($('#child').position().top);
始终返回0;(不是我想要的值)

返回非零金额。(这是我想要的值)


所以问题是,;如何在添加动态加载元素后立即确定其顶部位置?

我没有测试,但我假设您需要“等待”直到元素真正创建。所以,试着像这样增加短暂的延迟

setTimeout(function(){
   alert($('#child').position().top);
}, 10);

也许更短的延迟(如0或1而不是10)也可以工作。

$(“#父项”).createElement或document.createElement?这是一个错误的类型吗?参考:“这似乎工作得很好”。其实没有。你能用一个工作表更新你的问题吗?您发布的代码根本不起作用,而且您似乎混淆了DOM元素上可用的方法和jQuery方法。是的,这是一个输入错误。谢谢你,试过了。甚至将延迟时间提高到1秒。不显示为workalert($('#child').attr(“id”);返回正确答案谢谢fvrab。你在正确的轨道上。我正在将所有内容加载到jQueryUI选项卡中,在单击该选项卡之前,它是一个隐藏的div。因此,它正在创建但未显示,因此无法确定指标
setTimeout(function(){
   alert($('#child').position().top);
}, 10);