问题描述
|
我是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\');