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

问题描述

| 我是jQuery的新手。我正在尝试使用以下代码
var ThisTableWrapper = $(\'#switch1\').parent().next();
var ThisTable = $(ThisTableWrapper > \'.table-data\');
但这似乎不起作用。 一行写的正确方法是什么? 我已经尝试过类似的方法-但没有成功
$( $(\'#switch1\').parent().next();) > .table-data);
任何帮助都感激不尽。 HTML此处:HTML代码     

解决方法

        jQuery选择器必须始终是字符串或其他jQuery / DOM元素,但不能两者都是组合/串联。 第二行应为:
var ThisTable = ThisTableWrapper.children(\'.table-data\');
或一行:
var ThisTable = $(\'#switch1\').parent().next().children(\'.table-data\');
该文档提供了可能的选择器和遍历方法的列表。 正如@DanielB在他的评论中指出的那样,这只是为了修复语法,并不意味着选择了正确的元素。这取决于您未发布的实际HTML。     ,        假设您只是尝试使用子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()
。如果您想深入一层以上,请使用
find()
(例如Inception!)     ,        你可以试试
var ThisTableWrapper = $(\'#switch1\').parent().next().children(\'.table-data\');
除非.table-data不是直接子对象,否则
var ThisTableWrapper = $(\'#switch1\').parent().next().find(\'.table-data\');