使用jQuery修改表行

时间:2017-08-23 15:55:18

标签: jquery html siblings

我有一个小桌子,我想用一些jQuery修改。我没有能力更改静态HTML上的类,所以这一切都需要通过jQuery来完成。我想看看class = x的td是否表示' 48小时保持'然后是td,其中class = y,只有在那个tr被改为Unavilable。我不知道如何排除不同tr中的内容。

<table>
  <tr>
    <td class="x">48 Hour Hold</td>
    <td class="y">Available</td>
  </tr>
  <tr>
    <td class="x">Reference Desk</td>
    <td class="y">Available</td>
  </tr>
</table>
$(document).ready(function(){
  if($(".x:contains(48 Hour Hold)")){
    $(".y:contains(Available)").text('Unavailable');
  };
})

结果最终应如下所示:

<table>
  <tr>
    <td class="x">48 Hour Hold</td>
    <td class="y">Unavailable</td>
  </tr>
  <tr>
    <td class="x">Reference Desk</td>
    <td class="y">Available</td>
  </tr>
</table>

1 个答案:

答案 0 :(得分:2)

您不需要if条件,您只需选择包含给定字符串的所有.x元素,然后修改text()元素的next('.y'),像这样:

$('.x:contains("48 Hour Hold")').next('.y').text('Unavailable');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td class="x">48 Hour Hold</td>
    <td class="y">Available</td>
  </tr>
  <tr>
    <td class="x">Reference Desk</td>
    <td class="y">Available</td>
  </tr>
  <tr>
    <td class="x">48 Hour Hold</td>
    <td class="y">Available</td>
  </tr>
</table>