javascript - 如果元素为空隐藏下一个元素

标签 javascript jquery

我希望能够找到一种方法来隐藏前面的 <td>的内容(如果上面的内容为空)。我的 table 是这样设置的:

<tr>
  <td class="firsttd">
  </td>
</tr>
<tr>
  <td class="nexttd">
  Hide me if above TD is empty
  </td>
</tr>
<tr>
  <td class="firsttd">
  </td>
</tr>
<tr>
  <td class="nexttd">
  Hide me if above TD is empty
  </td>
</tr>

到目前为止:

$(".firsttd").each(function( index ) {
    var dotlenght = $(this).html().length;

    if (dotlenght < 1){
        $(this).next('.nexttd').hide();
    } 
});

但无法使其正常工作。我不知道如何告诉 JQuery 要定位哪个元素。

有人能指出我正确的方向吗?

最佳答案

您需要使用:

 $(this).parent().next().find('.nexttd').hide();
            ||     ||     ^^------find td `.nexttd`
            ||     ^^------Traverse to next tr
            ^^------Traverse to parent tr

此外,您不需要单独迭代元素。您可以使用 .filter() 函数定位所有第一个为空的 td 元素,并将完整代码缩小为:

  $( "td.firsttd" ).filter(function(){
      return $(this).html() == "";
  }).parent().next().find('.nexttd').hide();

关于javascript - 如果元素为空隐藏下一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30316424/

相关文章:

jquery - 什么是简单的 jquery 方法来在选中复选框时选择 radio ,然后在取消选中复选框时取消选择 radio ?

php - 为什么无法检索 $course 变量?

javascript - 如何使用正则表达式限制数字?

javascript - 需要对 nodejs 概念进行一些澄清

javascript - Ajax调用成功,但有一个未定义的问题

javascript - jvectormap 合并两个 map

javascript - 修复复选框元素中的切换所有行为

javascript - Date.now() 未显示在表单中的占位符日期类型中 - angularjs

javascript - 转换流程图,使其以 60 秒的间隔动态更新

javascript - Redux Dev Tools Chrome 扩展 Immutable.js 导致错误