如何使用div parent在表中查找文本

时间:2016-02-06 07:16:16

标签: javascript jquery html

我想在div父元素中找到带有表格的文本,如果我在搜索栏中写入任何文本我想只显示结果和剩余的divs hidde,我有不同的td我希望在四个单元格中搜索(从左到右)最后一个单元格并不重要

这是我的HTML:

<div class="caja-orden-curso" alt="3">
    <div class="contenido-curso">
        <table id="perrito" border="1" style="width:98%">
           <tr>
              <td width="220" height="100">
                 <div id="vehicle_type" class="top-order">
                    36624
                 </div>
              </td>
              <td width="200">
                 <div id="step_form_1" class="order-steps">
                    <span id="created">02/02/2016 10:59</span>
                 </div>
              </td>
              <td width="300">
                 <div class="order-details-top" style="height: 14px;">presidente masaryk, 29, , polanco</div>
                 <div class="order-details-bottom" style="height: 23px;">colima, 323, , roma norte</div>
              </td>
              <td width="120">
                 <div class="order-details-top">
                    alexis
                    <div>
                       <div class="order-details-bottom">
                          saul
                       </div>
              </td>
              <td width="120">
              565897423
              </td>
           </tr>
        </table>
    </div>
    <div class="color-lateral-curso">
    </div>
    <div class="tam-tabla-orden">
    </div>
</div>
<div class="caja-orden-curso" id="statu-20" alt="12">
    <div class="contenido-curso">
        <table id="perrito" border="1" style="width:98%">
           <tr>
              <td width="220" height="100">
                 <div id="vehicle_type" class="top-order">
                    35684
                 </div>
              </td>
              <td width="200">
                 <div id="step_form_1" class="order-steps">
                    <span id="created">01/02/2016 10:59</span>
                 </div>
              </td>
              <td width="300">
                 <div class="order-details-top" style="height: 14px;">yumnbvfd, 78984,</div>
                 <div class="order-details-bottom" style="height: 23px;">jhgfre, 483</div>
              </td>
              <td width="120">
                 <div class="order-details-top">
                    rtynbv
                    <div>
                       <div class="order-details-bottom">
                          zsdf
                       </div>
              </td>
              <td width="120">
              565897423
              </td>
           </tr>
        </table>
    </div>
    <div class="color-lateral-finalizada-segundo" id="statu-9">
    </div>
    <div class="tam-tabla-orden">
    </div>
</div>

这是我的剧本:

$("#buscador").keyup(function() {
  var dInput = $(this).val();
      if (!this.value) {
         $('div.caja-orden-curso').fadeIn();
      }
      else
        {
         $("table#perrito").each(function()
            {
             $(this).find('div.top-order:contains(' + dInput + ')').length > 0 ?
               $(this).show() : $(this).parents('div.caja-orden-curso').fadeOut(); 
          });
       }

  });

我的例子只适用于第一个细胞,其他三个细胞我不能。

这是我的fiddle

3 个答案:

答案 0 :(得分:5)

页面中的ID必须是唯一的。因此,将id="perrito"更改为class="perrito"并执行以下操作。

$("table.perrito").each(function() {
  if ($(this).find('div:contains(' + dInput + ')').length) 
    $(this).parents('div.caja-orden-curso').fadeIn();
  else
    $(this).parents('div.caja-orden-curso').fadeOut();
});

<强> DEMO

答案 1 :(得分:3)

这里你只使用了“top-order”类的find功能。如果你想要使用所有4个单元格,那么你也可以在所有三个单元格上应用这个类。你可以试试这个

<div class="caja-orden-curso" alt="3">
<div class="contenido-curso">
  <table id="perrito" border="1"style="width:98%">
                      <tr>
                        <td width="220" height="100">
                         <div id="vehicle_type" class="top-order">
                          36624
                         </div>
                        </td>
                        <td width="200">
                          <div id="step_form_1" class="order-steps top-order">
                            <span id="created">02/02/2016 10:59</span>
                          </div>
                        </td>
                        <td width="300">
                        <div class="order-details-top top-order" style="height: 14px;">presidente masaryk, 29, , polanco</div>
<div class="order-details-bottom top-order" style="height: 23px;">colima, 323, , roma norte</div>
                        </td>
                        <td width="120">
                          <div class="order-details-top top-order">
                          alexis
                          <div>
                            <div class="order-details-bottom top-order">
                          saul
                          </div>
                        </td>
                         <td width="120">
                          565897423
                        </td>
                      </tr>
                    </table>
                  </div>
                <div class="color-lateral-curso">
                </div>
                <div class="tam-tabla-orden">
                </div>
              </div>
              <div class="caja-orden-curso" id="statu-20" alt="12">
                <div class="contenido-curso">
                    <table id="perrito" border="1"style="width:98%">
                      <tr>
                        <td width="220" height="100">
                         <div id="vehicle_type" class="top-order">
                          35684
                         </div>
                        </td>
                        <td width="200">
                          <div id="step_form_1" class="order-steps top-order">
                            <span id="created">01/02/2016 10:59</span>
                          </div>
                        </td>
                        <td width="300">
                        <div class="order-details-top" style="height: 14px;">yumnbvfd, 78984,</div>
<div class="order-details-bottom top-order" style="height: 23px;">jhgfre, 483</div>
                        </td>
                        <td width="120">
                          <div class="order-details-top top-order">
                          rtynbv
                          <div>
                            <div class="order-details-bottom top-order">
                          zsdf
                          </div>
                        </td>
                         <td width="120">
                          565897423
                        </td>
                      </tr>
                    </table>
                  </div>
                <div class="color-lateral-finalizada-segundo" id="statu-9">
                </div>
                <div class="tam-tabla-orden">
                </div>
              </div>

答案 2 :(得分:1)

如果您想在桌面上搜索或排序或...,您可以使用DataTables jQuery插件

  • 分页,即时搜索和多列排序
  • 支持几乎所有数据源:易于主题化:DataTables,jQuery UI,Bootstrap,Foundation
  • Ajax自动加载数据
  • 和......

    $('#myTable').DataTable();

DataTables jQuery plugins