jQuery选择器 - 代码正确性问题

时间:2011-05-31 09:06:21

标签: jquery jquery-selectors

我是jQuery的新手。我正在尝试使用此代码:

var ThisTableWrapper = $('#switch1').parent().next();
var ThisTable = $(ThisTableWrapper > '.table-data');

但它似乎不起作用。

在一行中写这个的正确方法是什么?

我尝试过这样的事情 - 但没有成功

$( $('#switch1').parent().next();) > .table-data);

非常感谢任何帮助。

HTML HERE:html code

3 个答案:

答案 0 :(得分:3)

jQuery选择器必须始终是字符串,或其他jQuery / DOM元素,而不是两者的组合/连接。

第二行应该是:

var ThisTable = ThisTableWrapper.children('.table-data');

或者在一行中:

var ThisTable = $('#switch1').parent().next().children('.table-data');

该文档提供了list of possible selectorstraversal methods


正如@DanielB在评论中指出的那样,这只是为了修复语法,并不意味着选择了正确的元素。这取决于您未发布的实际HTML。

答案 1 :(得分:1)

假设您只是尝试使用子css选择器

var ThisTableWrapper = $('#switch1').parent().next();
var ThisTable = ThisTableWrapper.children('.table-data');

如果你想要它在一行中,只需将它链接

var ThisTable = $('#switch1').parent().next().children('.table-data');

http://api.jquery.com/children

我已经编辑了使用children()代替find()的答案。如果你想要超过一个级别(例如Inception!),请使用find()

答案 2 :(得分:0)

你可以尝试

var ThisTableWrapper = $('#switch1').parent().next().children('.table-data');

除非.table-data不是直接的孩子,否则

var ThisTableWrapper = $('#switch1').parent().next().find('.table-data');