代码之家  ›  专栏  ›  技术社区  ›  Arnkrishn

jquery获取复选框的文本属性

  •  5
  • Arnkrishn  · 技术社区  · 14 年前

    我正在使用下面的语句向页面添加复选框;

    <script language="C#" runat="server">
        protected void Page_Load ( object src, EventArgs e ) 
        {
            if (!IsPostBack)
            {
             CheckBox XChkBox = new CheckBox(); //instance of System.Web.UI.WebControls.CheckBox
             XChkBox.ID = "someId"
             XChkBox.Text = "someText"
             somePlaceHolder.Controls.Add(XChkBox);
            }
        }
    </script>
    

    我需要在单击时获取该复选框的文本属性。我试过 $(this).attr('Text'); 里面 $('input[type=checkbox]').click(function(){}); 但它返回未定义。

    我哪里出错了?请建议。

    干杯

    3 回复  |  直到 14 年前
        1
  •  10
  •   Christian C. Salvadó    14 年前

    ASP.NET呈现 Text 性质 ASP:CheckBox 服务器控件,作为 label 元素的后面 <input type="checkbox" /> 在客户端生成的标记上,它看起来如下所示:

    <input id="someId" type="checkbox" name="someId" />
    <label for="someId"> someText </label>
    

    你可以得到 text 标签 通过:

    $("input:checkbox").click(function() {
      var $label = $(this).next('label');
      alert($label.text());
    });
    
        2
  •  1
  •   Aaronaught    14 年前

    这个 CheckBox 控件呈现 Text 里面 <label> 元素。文本不是HTML复选框的一部分。如果要从jquery获取文本,必须从 <标签> .

    此外, <标签& GT; 它生成的实际上没有ID。 复选框 被命名 checkBox1 ,那么它输出的HTML将是 <label for="CheckBox1"> ,文本在该元素内。我相信正确的jquery语法应该是:

    $('label[for="checkBox1"]').html()
    
        3
  •  0
  •   Brandon Montgomery    14 年前

    这取决于你如何实现你所说的“文本”。

    如果是这样:

    <input id="chkFoo" type="checkbox" text="Check me, fool!" />
    

    然后您可以这样访问文本:

    $("#chkFoo").attr("text")
    

    如果你这样做的话

    <input id="chkFoo" type="checkbox" />Check me, fool!
    

    我想你运气不好。如果必须这样做,请在文本周围放置一个跨距,然后像这样抓取文本:

    <input id="chkFoo" type="checkbox" /><span id="spnFoo">Check me, fool!</span>
    
    $("#spnFoo").text()