【问题标题】:jQuery selector - code correctness questionjQuery 选择器 - 代码正确性问题
【发布时间】:2011-05-31 09:06:21
【问题描述】:

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

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

但它似乎不起作用。

在一行中写下它的正确方法是什么?

我尝试过类似的方法 - 但没有成功

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

任何帮助将不胜感激。

此处的 HTML:html code

【问题讨论】:

  • 您应该发布 HTML 代码。没有人可以假设您的嵌套标签从不工作的 jacasript 代码中看起来如何,除了一些拥有巨大声誉池的用户;-)
  • 大家好, 在这里:link
  • 我已经用一些工作代码更新了你的小提琴。 jsfiddle.net/CHc6u/41
  • 感谢@DanielB - 实际上还有更多内容:)
  • 我知道,但你的小提琴什么也没做 ;-)

标签: jquery jquery-selectors


【解决方案1】:

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

第二行应该是:

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

或者在一行中:

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

文档提供了list of possible selectorstraversal methods


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

【讨论】:

    【解决方案2】:

    假设您只是想使用子 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()

    【讨论】:

      【解决方案3】:

      你可以试试

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

      除非 .table-data 不是直接子节点,否则

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-04
        • 2011-10-31
        • 2010-12-01
        • 2010-11-25
        相关资源
        最近更新 更多