【问题标题】:Jquery .css('top') returns undefinedJquery .css('top') 返回未定义
【发布时间】:2011-05-11 16:04:29
【问题描述】:

以下是我的应用程序构建方式的简要说明:

元素是动态创建的。所有元素都是可拖动和调整大小的。我创建了一个在单击按钮时运行的函数。这是函数:

$( '#save_canvas' ).click( 函数(e){ var _tmpArray = []; //临时数组 变量 i = 0; $( '#canvas' ).children('.elem').each( //$('.elem').each( 功能(){ _tmpArray = []; //临时数组 _id = $(this).attr('id'); _top = $( '#' + _id ).css('top'); _left = $( '#' + _id ).css('left'); _height = $( '#' + _id ).css('height'); _width = $( '#' + _id ).css('width'); _tmpArray[0] = _id; _tmpArray[1] = _height; _tmpArray[2] = _width; _tmpArray[3] = _top; _tmpArray[4] = _left; } ); });

该函数非常适合第一个元素(第一个子元素)。但不是其余的。这是创建了 3 个元素的数组的 document.write 输出:

== 传奇 ==
元素 ID
身高
宽度
顶部

文本块_1 50像素 150像素 262像素 100像素 文本块_2 不明确的 不明确的 不明确的 不明确的 文本块_3 不明确的 不明确的 不明确的 不明确的

我已经在网上进行了广泛搜索,但我一生都无法弄清楚这一点...请帮助? :)

【问题讨论】:

  • 我认为问题出在这个 _top(或其他任何东西)= $( '#' + _id ),也许这就是它们未定义的原因,元素没有正确“获取”,如果你明白我的意思
  • 这段代码的目的是什么?以及对应的 HTML 是什么样子的?
  • 这是一个我目前正在开发的应用程序......我现在可以说的就这么多了 :)
  • 但是您打算如何处理这段特定的代码?
  • 哦!对不起!我计划检索包含 div 元素中每个元素的顶部、左侧、高度、宽度属性。不确定这些是否是您想要/需要知道的详细信息。

标签: javascript jquery dom


【解决方案1】:

您是否在后续文本块上设置了 ID?不需要连续使用"$('#' + _id)",一直使用$(this)即可。

【讨论】:

  • 是的,我猜 "$( '#' + _id )" 真的很多余!
  • 虽然所有元素都有一个 ID....正如您从 document.write 输出中看到的那样。 ID 以“textblock_”开头
  • @Luckner 没错。 el = $(this); _top = el.css('top'); 等等!也应该更快
  • 我认为我们正在做一些事情。我删除了那个乱码并用“$(this)”替换了它,现在我可以得到顶部和左侧,但不能得到高度和宽度。可能是因为我没有很好地称呼那些。谢谢 !! :)
  • _top = $( this ).css('top'); _left = $( this ).css('left'); _height = $( 这个 ).height(); _width = $( this ).width();
【解决方案2】:

非常感谢大家帮忙找出这段代码的问题!

最终问题的部分原因是我调用元素的方式 - 我必须弄清楚为什么仍然 - 但也因为我必须使用 .height() 和 .width():

_top = $( this ).css('top'); _left = $( this ).css('left'); _height = $( 这个 ).height(); _width = $( 这个 ).width();

再次感谢! :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-23
    • 2011-04-17
    • 1970-01-01
    • 2015-07-13
    • 2021-09-06
    • 2016-12-01
    • 2010-11-29
    • 2020-06-30
    相关资源
    最近更新 更多