2010-10-28 40 views
0

我有一个类和ID的数组,我试图迭代并追加到这些元素。下面的代码适用于除IE7及以下版本以外的所有浏览器。 IE7及以下版本会抛出异常,告诉我'length'为空或未定义。现在一直在摔跤。有任何想法吗?jquery,IE7和迭代

代码是在这里:http://gist.github.com/651456

回答

0

尝试

$(element).size() 
+0

.length是jQuery API的一部分。它返回jQuery对象中元素的数量,与.size()的值相同。请参阅:http://api.jquery.com/length/ – Fermin 2010-10-28 14:55:21

+0

我的错误,我们的权利。 – 2010-10-28 15:17:10

0

According to jQuery's API.length应该只是一样.size(),所以我不认为这是个问题。我认为问题可能在于如何使用jQuery.each()方法。再次,according to the APIjQuery.each()回调传入两个值:indexInArray(您用作index)和valueOfElement(用作element)。问题可能出在IE7无法将您的valueOfElement变成jQuery对象,因此无法获得它的.length属性。

我不熟悉Drupal的代码,所以我没有测试过这一点,但我觉得这行:

if ($(element).length) { 

可以改写为这样的:

if ($(element) && $(element).length) { 

解决您的问题。

我很抱歉无法首先测试,但我希望它能正常工作。