jQuery如何在表中隐藏包含td的所有span

时间:2017-06-04 19:29:14

标签: javascript jquery html css hide

我在表格中有一些行,如下面的代码,我想在几秒钟之后隐藏td的内容(我已经在循环中填充了文本)。 我的示例代码是

setTimeout(function() {
  $('span').each(function(index, el) {
      $(this).hide();//nothing happens
  });
}, 5000);


<tr>
  <span class="myspan"><td></td></span>
  <span class="myspan"><td></td></span>
  <span class="myspan"><td></td></span>
  <span class="myspan"><td></td></span>
</tr>

我也尝试过使用其他方法,例如将所有span保存到数组中,或者选择该类并隐藏它。

var arr=$('span');
for (var i=0;i<arr.length;i++){
  arr[i].css('visibility','hidden');
}

但同样的事情发生了。我希望能够在不需要隐藏边框的情况下显示和隐藏td的内容,如果可能的话

2 个答案:

答案 0 :(得分:0)

你可以使用表格中td标签中的任何元素。 否则浏览器将您的代码转换为有效代码。 输出你的HTML就像在浏览器中那样:

<body>
    <span class="myspan"></span>
    <span class="myspan"></span>
    <span class="myspan"></span>
    <span class="myspan"></span>
    <table>
        <tbody>
           <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
      </tbody>
   </table>
</body>

您选择跨度,但目标范围内不再有td。所以你的选择是假的。

你必须改变你的HTML:

<tr>
  <td><span class="myspan"></span></td>
  <td><span class="myspan"></span></td>
  <td><span class="myspan"></span></td>
  <td><span class="myspan"></span></td>
</tr>

现在您可以选择它并执行您的功能:

var arr=$('span');
arr.css('visibility','hidden');

var arr=$('span');
arr.hide();

稍后会告诉你:

att.show();

你不需要或任何循环。只需选择你的目标并说你想做什么。 JQuery为你的选择器中的每一个做(对象就像一个循环)

答案 1 :(得分:-1)

要在5秒后隐藏所有内容,您可以使用以下代码

setTimeout(function() {
 $('table tr span').hide(5000);
}, 5000);

setTimeout(function() {
     $('table tr span').css('visibility','hidden');
 }, 5000);