Jquery根据元素的查找方式返回元素的.width()

时间:2014-11-18 20:14:10

标签: javascript jquery arrays

[$('*')[432]]
==>[<a id=​"mini_path_banner" href=​"/​daily-instant-wins-start">​Win over $1,000.00 Instantly​</a>​]

$('#mini_path_banner')
==>[<a id=​"mini_path_banner" href=​"/​daily-instant-wins-start">​Win over $1,000.00 Instantly​</a>​]

[$('*')[432]].width()
==>Uncaught TypeError: undefined is not a function VM5997:2

$('#mini_path_banner').width()
==>300

您可以在此网站上查看:http://games.pch.com/。据我了解,[$('*')[432]]$('#mini_path_banner')返回了两个相同的对象。那为什么对它们执行相同的方法会产生不同的结果?以及如何找到$('*')[index]找到的元素宽度?

2 个答案:

答案 0 :(得分:1)

[$('*')[432]].width()应为$('*').eq(432).width()

你有什么问题:

  1. $('*')[432]获取没有.width()方法的DOM对象。
  2. [$('*')[432]]是一个单独的元素数组,其中包含一个DOM对象,它也没有.width()方法。
  3. 使用.eq(n)将单个元素添加到新的jQuery对象中(而不仅仅是DOM对象),这样就可以像.width()一样调用jQuery方法:

    $('*').eq(432).width();
    

答案 1 :(得分:1)

$('*')[432] 

它是一个DOM对象,而不是一个jQuery对象

两种解决方案:

$('*').eq(432).width()
//or
$($('*')[432]).width()