【问题标题】:JQuery basics - Selecting elements inside a cached elementJQuery 基础 - 在缓存元素中选择元素
【发布时间】:2012-11-14 10:47:05
【问题描述】:

抱歉,这是一个非常基本的 jQuery 语法问题,但我找不到任何人在任何地方讨论它(可能是因为我不知道要搜索的正确术语)。

我想使用变量选择/缓存 a ,然后在其中获取检查输入的值。 现在我知道我可以在不缓存的情况下做到这一点:

var questionID = (a string)
$(questionID + " input:radio:checked").val()

但我多次使用 div#'questionID' 对象,所以想缓存它,即

questionID = '#' + ...Something that changes ...
$question = $(questionID);

现在 $question 是一个 jQuery 对象,我不知道如何选择其中的内容(不使用 children())

例如以下不起作用:

$question.(' input:radio:checked)
$($question 'input:radio:checked')

我想这是一个非常基本的语法,但我在任何地方都找不到它,我尝试了很多组合但没有运气......

如果这真的很愚蠢,任何帮助都将受到高度赞赏和道歉,但我对 jQuery 很陌生,

尼克

【问题讨论】:

    标签: jquery caching css-selectors


    【解决方案1】:

    你可以使用

    var checkedRadios = $('input:radio:checked', $question);
    

    var checkedRadios = $question.find('input:radio:checked');
    

    这叫做树遍历,更多关于树遍历的api可以在jQuery Documentation找到

    find 方法用于搜索给定范围内的元素。

    【讨论】:

    • 谢谢。这正是我正在寻找的。我曾考虑在 DOM 中移动,但一定错过了 $.find()。
    • 对于第一种方法,我认为这个选择器选择多个元素(即它选择任何'input:radio:checked'和'$question')而不是以分层方式选择它们(即$ ('a',$b) 在 $b 下选择 a。)
    【解决方案2】:

    使用 .find(),我想这就是你要找的东西!

    $question.find('input:radio:checked');
    

    编辑我建议浏览 jQuery API,http://api.jquery.com/category/traversing/tree-traversal/

    【讨论】:

      【解决方案3】:

      我认为你正在寻找

      var checkedRadiosInsideQuestion = $question.find('input:radio:checked');
      

      【讨论】:

        【解决方案4】:

        试试$('input:radio:checked', $question)...

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-02-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-05-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多