在子文本框长度上隐藏父表行

时间:2018-09-12 08:57:22

标签: javascript jquery html

如果该行内的asp:Textbox为空,我想隐藏表行。

我做对了吗?甚至有可能这样,还是我应该采取不同的方法?

$(document).ready(function() {
  $(".TableRow").each(function() {
    var el = $(this);
    var child = el.parent().children(".TexBoxTR").lenght;
    if (child > 0) {
      el.parent().hide();
    }
  });
})
<table>
  <tr class="TableRow">
    <td class="tg-yw4l">A</td>
    <td colspan="3" class="tg-yw4la" style="width: 250px">
      <asp:textbox runat="server" Width="274px" ID="textbox2" CssClass="auto-style1 TexBoxTR" Enabled="false"></asp:textbox>
      <asp:textbox runat="server" Width="274px" ID="textbox3" CssClass="auto-style1" Visible="false"></asp:textbox>
      <asp:textbox runat="server" Width="274px" ID="textbox4" CssClass="auto-style1" Visible="false"></asp:textbox>
    </td>

  </tr>
  <tr class="TableRow">
    <td class="tg-yw4l">A/1</td>
    <td class="tg-yw4l" style="width: 250px">
      <asp:textbox runat="server" Width="274px" ID="textbox5" CssClass="auto-style1 TexBoxTR" Enabled="false"></asp:textbox>
    </td>
    <td class="tg-yw4l">
      <asp:textbox runat="server" Width="111px" ID="textbox6" CssClass="auto-style1"></asp:textbox>
    </td>
    <td class="tg-a86t" align="right">
      <asp:textbox runat="server" Width="68px" ID="textbox7" placeholder="0" Enabled="False"></asp:textbox>
    </td>
  </tr>
  <tr class="TableRow">
    <td class="tg-yw4l">A/2</td>
    <td class="tg-yw4l" style="width: 250px">
      <asp:textbox runat="server" Width="274px" ID="textbox8" CssClass="auto-style1 TexBoxTR" Enabled="false"></asp:textbox>
    </td>
    <td class="tg-yw4l">
      <asp:textbox runat="server" Width="111px" ID="textbox9" CssClass="auto-style1"></asp:textbox>
    </td>
    <td class="tg-a86t" align="right">
      <asp:textbox runat="server" Width="68px" ID="textbox10" placeholder="0" Enabled="False"></asp:textbox>
    </td>
  </tr>
  <tr class="TableRow">
    <td class="tg-yw4l">A/3</td>
    <td class="tg-yw4l" style="width: 250px">
      <asp:textbox runat="server" Width="274px" ID="textbox11" CssClass="auto-style1 TexBoxTR" Enabled="false"></asp:textbox>
    </td>
    <td class="tg-yw4l">
      <asp:textbox runat="server" Width="111px" ID="textbox12" CssClass="auto-style1"></asp:textbox>
    </td>
    <td class="tg-a86t" align="right">
      <asp:textbox runat="server" Width="68px" ID="textbox13" placeholder="0" Enabled="False"></asp:textbox>
    </td>
  </tr>
</table>

4 个答案:

答案 0 :(得分:3)

请使用以下代码

 $(document).ready(function () {
        $(".TableRow td .TexBoxTR").each(function () {
            if ($(this).val() == null || $(this).val() == "") {
                $(this).parent().parent().hide();
            }
        });
    });

答案 1 :(得分:1)

您需要拼写lenght length

但是你可能是这个意思

 $(".TableRow").each(function () {
   $(this).toggle($(this).find(".TexBoxTR").val()==""); // show if not empty
 });

答案 2 :(得分:1)

您可以检查文本框的值长度,然后找到最接近的tr,如下所示:

 $(document).ready(function () {
    $(".TableRow td .TexBoxTR").each(function () {
        if ($(this).val().trim().length==0) {
            $(this).closest("tr").hide();
        }
    });
});

答案 3 :(得分:0)

您可以使用此:

$(document).ready(function () {
    $(".TableRow td .TexBoxTR").each(function () {
        if ($(this).val().trim().length == 0) {
            $(this).closest(".TableRow").hide();
        }
    });
});