我是jQuery的新手。我正在尝试使用此代码:
var ThisTableWrapper = $('#switch1').parent().next();
var ThisTable = $(ThisTableWrapper > '.table-data');
但它似乎不起作用。
在一行中写这个的正确方法是什么?
我尝试过这样的事情 - 但没有成功
$( $('#switch1').parent().next();) > .table-data);
非常感谢任何帮助。
HTML HERE:html code
答案 0 :(得分:3)
jQuery选择器必须始终是字符串,或其他jQuery / DOM元素,而不是两者的组合/连接。
第二行应该是:
var ThisTable = ThisTableWrapper.children('.table-data');
或者在一行中:
var ThisTable = $('#switch1').parent().next().children('.table-data');
该文档提供了list of possible selectors和traversal 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');