如何检索动态创建元素的偏移量?

时间:2012-01-12 15:34:53

标签: javascript jquery html offset

我正在使用javascipt动态添加元素:

$('.marker').append('<div class="container" id="id' + counter + '" ><input type="text" name="textbox" id="textbox' + counter + '" value="" ></div>');
counter++; 

我需要有这些添加元素的位置(偏移x和y)。用户可以添加和删除这些元素。然后它应该被保存,我需要有最终的元素位置列表。

我尝试过使用jquery offset()函数,但它只适用于不动态添加的元素。

是否可以检索那些动态添加元素的偏移量?如果是,那怎么样?

3 个答案:

答案 0 :(得分:4)

不确定你是否解释得不好,因为下面的例子就是你所要求的......

http://jsfiddle.net/johncmolyneux/zXSuh/

只需打开控制台即可运行它。

以下是在控制台中显示偏移值的代码...

$(".container").each(function() {
    console.log($(this).offset().top);
});

答案 1 :(得分:2)

var div = $("<div>", {
    "class": "container",
    id: "id" + counter
}).append($("<input>", {
    type: "text",
    name: "textbox",
    id: "textbox" + counter
}));

$(".marker").append(div);

var offset = div.offset();
console.log(offset.left, offset.top);

counter++;

答案 2 :(得分:0)

您是否尝试过将变量分配给动态创建的元素,如下所示:

var el = $('<div class="container" id="id' + counter + '" ><input type="text" name="textbox" id="textbox' + counter + '" value="" /></div>');

$('.marker').append(el);
counter++; 

然后你应该可以使用el.offset():

el.offset();