【问题标题】:How to retrieve label created by ASP.NET-MVC helper via Javascript如何通过 Javascript 检索由 ASP.NET-MVC 助手创建的标签
【发布时间】:2012-02-23 13:06:46
【问题描述】:
<input type="radio" id="Check" name="color">
<label for="Check" >Check it</label>

如果我想调用单选按钮,我会在脚本中像下面这样调用它。

$('#check').attr('checked', false);

但是我如何在第二行调用标签。我需要在那里介绍另一个 ID。

【问题讨论】:

    标签: javascript asp.net-mvc model-view-controller


    【解决方案1】:

    你可以访问它:

    $('#check').next();
    

    如果您只想在选中单选按钮时访问它:

    $("#check:checked").next();
    

    【讨论】:

      【解决方案2】:

      我会做这样的事情

      $('#check').change(function() {
          $(this).attr('checked', false);
          $('label[for="' + $(this).attr('id') + '"]').WHATEVER();
      });
      

      这使您可以保留与您所拥有的完全相同的 HTML。
      或者,您可以使用@kprobst 描述的closest 方法

      $("#Check").closest('label');
      

      但是,如果两个标签靠得很近,则“可能”会被误解。第一个建议确保您调用输入的“正确”标签。

      【讨论】:

      • Here's an example 我如何使用它来隐藏和显示复选框。
      • 同意,我真的不喜欢closest() 的方式,因为它依赖于元素的位置,可以改变和破坏脚本。
      【解决方案3】:

      是的,你可以给它一个 id="checkLabel" 并通过 jQuery $('#checkLabel').. 访问它。

      或者如果你不想给它一个 id 你可以使用 .closest:

      $('#check').closest('label')
      

      【讨论】:

        【解决方案4】:

        拥有一个标签元素的 id 来访问它可能是最容易的。

        【讨论】:

        • 不一定。 - 修改答案后更改。
        • 是的,看到我的回答有点误导。
        • ps:代码示例总是有助于获得支持;)
        【解决方案5】:

        理想情况下,您需要一个 ID 或一个独特的样式或其他东西来引用一个元素,但您也可以使用这样的位置选择器:

        $("#Check").closest('label');
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-01-03
          • 1970-01-01
          • 2016-11-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-04-03
          相关资源
          最近更新 更多