添加“offset()。left”时For循环退出

时间:2015-11-27 19:47:17

标签: javascript jquery html for-loop

我有for-loop appends div元素。在for-loop中,我想将offset().left传递给变量。每当我这样做时,for-loop退出。如果我删除.left,则可以正常使用。

如何在循环中添加.offset().top;而不退出?

JSFiddle

var vals = 5;

for (var i = 0; i <= vals; i++) {
  var el = $('<div>' + i + '</div>');
  $('#hello').append(el);
  var nothing = $('#nothing').offset().left; // If you comment out ".left" it works fine
}
div {
  background-color: yellowGreen;
  width: 100px;
  height: 100px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="hello"></div>

1 个答案:

答案 0 :(得分:2)

对于记录,你的循环提前退出的原因是你遇到了运行时错误,即:

“Uncaught TypeError:无法读取未定义的属性'left'”

这可能是因为页面上不存在id = nothing的元素。如果您的选择器没有捕获DOM元素,Sub ConvertToHyperlink() With Worksheets(1) .Hyperlinks.Add Anchor:=.Range("e5"), _ Address:=.Range("f5"), _ ScreenTip:="test web site" End With End Sub 将返回$(asdf).offset()