如何根据使用JQuery存储在第一个TD中的表的值隐藏存储在第二个TD中的图像?

时间:2013-08-23 15:27:22

标签: javascript jquery html css

我有一个2列TABLE,第一个TD包含另一个包含3行内容的TABLE,第二个TD包含一个图像如下: -

<table id="myTable" cellspacing="0" cellpadding="0">
      <tbody>
        <tr>
          <td style="padding-top: 10px;">
            <table>
              <tbody>
                <tr>
                  <td align="left">
                    Wellness and Care
                  </td>
                </tr>
                <tr>
                  <td align="left">
                    630 Woodbury Drive
                  </td>
                </tr>
                <tr>
                  <td align="left">
                    641.613.1450
                  </td>
                </tr>
                <tr>
                  <td align="left">
                    No Webaddress
                  </td>
                </tr>
              </tbody>
            </table>
          </td>
          <td align="right">
            <img src="images/phone.png" class="imgHeader" id="imgPhone">
          </td>
        </tr>
        <tr>
          <td style="padding-top: 10px;">
            <table>
              <tbody>
                <tr>
                  <td align="left">
                    Hospital
                  </td>
                </tr>
                <tr>
                  <td align="left">
                    N/A
                  </td>
                </tr>
                <tr>
                  <td align="left">
                    641.613.1451
                  </td>
                </tr>
                <tr>
                  <td align="left">
                    No Webaddress
                  </td>
                </tr>
              </tbody>
            </table>
          </td>
          <td align="right">
            <img src="images/phone.png" class="imgHeader" id="imgPhone">
          </td>
        </tr>
      </tbody>
    </table>

如果其中一个TD的值为“N / A”,我试图禁用该行第二列的图像。我被困在获得父母TR并去第二个TD做某事。

我的尝试如下:

$('#myTable tr').each(function () {

    if ($(this).find("td").text().trim() == "N/A") {
        var cellIndex = $(this).index();
        var nextTD = $(this).children('td').eq(1).index();
       // I am basically stuck here in getting next TD

    }
});

任何帮助表示赞赏!!

4 个答案:

答案 0 :(得分:2)

尝试

$( '#myTable td:first-child td:contains("N/A")' ).closest('tr').closest('td').next().find('img').hide()

演示:Fiddle

答案 1 :(得分:2)

DEMO

$('#myTable td:first-child td:contains("N/A")').parents('td').next().find('img').hide();

答案 2 :(得分:1)

在您的情况下,我要做的是为您的4个tr标签添加一个带有文字的课程。然后你可以通过他们的类解析其中的每一个,如果其中一个等于'N / A',你可以通过它的ID获取图像并隐藏它。

HTML:

<td class="test" align="left">
    Wellness and Care
</td>

JQuery的:

$('.test').each(function () {
    if($(this).text().trim() == 'N/A') {
        $("#imgPhone").toggle();
    }
});

JSFiddle:http://jsfiddle.net/ax6Mv/

答案 3 :(得分:0)

这应该足以让你入门:

$( '#myTable td:first td' ).each(
  function() {
    if ( $( this ).text().trim() == 'N/A' ) {
      $( '#myTable td' ).eq( 1 ).hide();
    }
  }
);