【问题标题】:Check radio button whose value = $ programmatically以编程方式检查其值 = $ 的单选按钮
【发布时间】:2012-02-06 22:15:42
【问题描述】:

有一个单选按钮组定义如下:

<input type="radio" name="type0" value="$">$<input type="radio" name="type0" value="%">%

需要检查第一个值为$的单选按钮。

问题是下面的代码没有做到这一点。需要某种方式来逃避$

$('input[type=radio][value=$]').attr('checked','checked');

【问题讨论】:

    标签: jquery jquery-selectors radio-button


    【解决方案1】:
    $('input[type=radio][value="$"]').first().attr('checked','checked');
    

    【讨论】:

    • -1 因为这个解决方案将检查 all 值 = $ 的单选按钮,而不仅仅是 first,就像他要求的那样。
    • 实际问题是“以某种方式逃避 $”,因为我已经改变了答案
    【解决方案2】:
    $('input[type="radio"][name="type0"][value="$"]:first').prop('checked', true);
    

    【讨论】:

      【解决方案3】:

      用\\ 转义美元:

      $('input[type=radio][value=\\$]:first').attr('checked','checked');
      

      代码:http://jsfiddle.net/E6uBw/3/

      【讨论】:

      • -1 因为这个解决方案将检查 all 值 = $ 的单选按钮,而不仅仅是 first,就像他要求的那样。
      • First 表示 2 mentinoed 中的第一个。
      • “需要检查值 = $ 的第一个单选按钮”的哪一部分让您相信他只想要提到的两个中的第一个?
      • 这句话上面的代码。无论如何,我添加了.first() 以消除误解。谢谢。
      • 我猜你是对的;它可以被解释为任何一种方式。删除了 -1 :-)
      【解决方案4】:

      这对我有用,将选择器用双引号括起来,将属性选择器用单引号括起来

      $("input[type=radio][value='$']").attr('checked','checked');
      

      http://jsfiddle.net/BuvKT/

      【讨论】:

      • -1 因为这个解决方案将检查 all 值 = $ 的单选按钮,而不仅仅是 first,就像他要求的那样。
      • @drrcknlsn 啊!对,但问题是如何逃避$
      • 确实如此,但如果他在一页上有多个这样的广播组,那么您正在使用的代码(以及他尝试使用的代码)将选择所有这些值 = $。这可能不是想要的效果。即使这是页面上唯一喜欢它的组,它也可以防止将来出现错误,使用:first 或.first() 限定它和/或在选择器[name="type0"] 中指定组名称。
      • @drrcknlsn 是的“可能不是想要的效果”!
      猜你喜欢
      • 1970-01-01
      • 2011-04-03
      • 1970-01-01
      • 2017-01-27
      • 1970-01-01
      • 1970-01-01
      • 2021-06-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多