如何使用j查询查找tr(针对特定css类)中的所有控件

时间:2012-09-20 07:56:40

标签: jquery asp.net

我有多个具有相同类名的标签。然后我有一个函数循环所有带有这个类名的标签并隐藏/显示这些。

问题:我在这个标签中有多个控件,我想重置所有这些控件,如果它被隐藏。但我可以在其中找到所有控件的集合。

... HELP !!!!

示例代码:

function toggleRows(rowClass, value, max) { 
        $("." + rowClass).each( 
        // For each element which a class of rowClass, run this code. 
        function () { 
            var rowNumber = parseInt($(this).attr("rowNumber")); 

            //If the specified value is >= the row number, then show the row, else hide it. 
            if (value >= rowNumber) { 
                $(this).show(); 
            } 
            else { 
                $(this).hide(); 
                var frm = $(this).children(); 
                for (i = 0; i < frm.elements.length; i++) {   
                 if (frm.elements[i].type == "checkbox") { 
                        frm.elements[i].checked = false; 
                    } 
                    if (frm.elements[i].type == "radio") { 
                        frm.elements[i].checked = false; 
                    } 
                    if (frm.elements[i].type == "text") { 
                        frm.elements[i].value = ""; 
                    } 
                    if (frm.elements[i].type == "select") { 
                        frm.elements[i].value = 0; 
                    } 
                } 
            } 
        }); 


    <tr id="id1" runat="server" class="rowClass"  rownumber="1"> 
 <td> 
    <table width="100%"> 
       <tr> 
           <td runat="server" enableviewstate="False" id="td1" class="numberColumn"> 
                &nbsp; 
            </td> 

           <td class="numberColumnNoBold"> 
                &nbsp; 
             </td> 
          <td> 
              test1 
          </td> 
          <td align="right"> 
             $ 
          <asp:TextBox ID="textbox1" runat="server" CssClass="textthinnumeric" /> 

              </td> 
                     </tr> 
           <tr> 
       <td runat="server" enableviewstate="False" id="tdS1" class="numberColumn"> 
                &nbsp; 
          </td> 
       <td class="numberColumnNoBold"> 
               &nbsp; 
       </td> 
       <td> 
             test2 
       </td> 
      <td align="right"> 
               <asp:RadioButtonList ID="rbl1" runat="server" RepeatDirection="Horizontal"> 
                <asp:ListItem Value="Yes" Text="Yes" /> 
                <asp:ListItem Value="No" Text="No" />    </asp:RadioButtonList>                                                                                           </td> 
      </tr> 
       <tr> 
           <td runat="server" enableviewstate="False" id="tdS21" class="numberColumn"> 
                 &nbsp; 
            </td> 
           <td class="numberColumnNoBold"> 
                   &nbsp; 
            </td> 
            <td colspan="2"> 
                test3:<br /> 
             <asp:TextBox ID="textboxSt1" runat="server" TextMode="MultiLine" Rows="3" Columns="100" /></td> 
           </tr> 
      </table> 
   </td> 
 </tr>

2 个答案:

答案 0 :(得分:2)

您应该包含您的HTML,因此我们可以100%确定您获得了所需的答案。但是只有你的JS有一些点,你可以更多地使用jQuery:

function toggleRows(rowClass, value, max) { 
    $("." + rowClass).each(function () { 
        var row = $(this),
            rowNumber = row.index(); 

        row.toggle(value >= rowNumber);

        if (!row.is(':visible')) {
            row.find('input[type="checkbox"]').prop('checked', false);
            row.find('input[type="radio"]').prop('checked', false);
            row.find('input[type="text"]').val('');
            row.find('select').val('0');
        } 
    }); 

编辑:对ddl使用了错误的选择器

答案 1 :(得分:1)

使用jquery查找tr(针对特定css类)中的所有控件,  只需使用:

$('tr .YourClassName');