2012-12-21 164 views
2

见我的代码:从jQuery对象数组获取元素

var ths = $("#my_table table th"); 
if (ths.length > 1) { 
    var $th = ths[1]; // tried here plain 'var th' - still got error 
    th.find('#map_column_element_id'); // error here! 
} 

我得到的JQuery对象数组。然后我尝试将第二个元素作为JQuery对象来管理。当我发出

th.find(...) 

我得到类型错误:th.find不是一个函数。我究竟做错了什么?

+2

为什么你需要通过'id'来查找元素? 'id's在页面上应该是唯一的,所以'$(“#map_column_element_id”)'应该没问题。 –

回答

6

你会得到原生JS DOM元素,它没有find()方法。使用eq(),或用$(ths[1])重新包装元素。

我会用eq(),就像这样:

var ths = $("#my_table table th"); 
if (ths.length > 1) { 
    var $th = ths.eq(1); 
    $th.find('#map_column_element_id'); 
} 

还与安德鲁的评论表示赞同,一个ID是唯一的,应该没有必要find()它,简单地做$('#map_column_element_id')应该足够了。

+0

非常感谢您的回答! –