Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果元素为空,则隐藏下一个元素_Javascript_Jquery - Fatal编程技术网

Javascript 如果元素为空,则隐藏下一个元素

Javascript 如果元素为空,则隐藏下一个元素,javascript,jquery,Javascript,Jquery,我希望能够找到一种方法来隐藏前面的的内容,如果上面的内容是空的。我已将我的桌子设置为: <tr> <td class="firsttd"> </td> </tr> <tr> <td class="nexttd"> Hide me if above TD is empty </td> </tr> <tr> <td class="firsttd"> &l

我希望能够找到一种方法来隐藏前面的
的内容,如果上面的内容是空的。我已将我的桌子设置为:

<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>

如果上面的TD为空,请隐藏我
如果上面的TD为空,请隐藏我
迄今为止:

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

    if (dotlenght < 1){
        $(this).next('.nexttd').hide();
    } 
});
$(“.firsttd”)。每个(函数(索引){
var dotlenght=$(this.html().length;
如果(点长<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();
您需要使用:

 $(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();
您需要使用:

 $(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();
您需要使用:

 $(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();

代码中有两个问题

首先是内容的长度:

$(this).html().length; // will produce 1

$.trim($(this).html()).length; // will produce 0
第二行隐藏下一行:

 $(this).next().find('.nexttd').hide();
应该是:

 $(this).parent().next().find('.nexttd').hide();

代码中有两个问题

首先是内容的长度:

$(this).html().length; // will produce 1

$.trim($(this).html()).length; // will produce 0
第二行隐藏下一行:

 $(this).next().find('.nexttd').hide();
应该是:

 $(this).parent().next().find('.nexttd').hide();

代码中有两个问题

首先是内容的长度:

$(this).html().length; // will produce 1

$.trim($(this).html()).length; // will produce 0
第二行隐藏下一行:

 $(this).next().find('.nexttd').hide();
应该是:

 $(this).parent().next().find('.nexttd').hide();

代码中有两个问题

首先是内容的长度:

$(this).html().length; // will produce 1

$.trim($(this).html()).length; // will produce 0
第二行隐藏下一行:

 $(this).next().find('.nexttd').hide();
应该是:

 $(this).parent().next().find('.nexttd').hide();

尝试使用
$来修剪html内容。trim()
您可以使用
$(“td:empty”)
来选择空的td。@hitman:如果它包含空格,则不会;除非jQuery实现了CSS的非标准版本
:empty
伪类。@DavidThomas sorry!。。我不知道。谢谢你提供的信息。“如果元素为空,隐藏下一个元素”,“如果前面的元素为空,我希望能够找到一种方法隐藏前面的内容”是隐藏下一个元素的要求?或者b)“previous”元素?尝试使用
$来修剪html内容。trim()
您可以使用
$(“td:empty”)
来选择空的td。@hitman:如果它包含空格,则不可以;除非jQuery实现了CSS的非标准版本
:empty
伪类。@DavidThomas sorry!。。我不知道。谢谢你提供的信息。“如果元素为空,隐藏下一个元素”,“如果前面的元素为空,我希望能够找到一种方法隐藏前面的内容”是隐藏下一个元素的要求?或者b)“previous”元素?尝试使用
$来修剪html内容。trim()
您可以使用
$(“td:empty”)
来选择空的td。@hitman:如果它包含空格,则不可以;除非jQuery实现了CSS的非标准版本
:empty
伪类。@DavidThomas sorry!。。我不知道。谢谢你提供的信息。“如果元素为空,隐藏下一个元素”,“如果前面的元素为空,我希望能够找到一种方法隐藏前面的内容”是隐藏下一个元素的要求?或者b)“previous”元素?尝试使用
$来修剪html内容。trim()
您可以使用
$(“td:empty”)
来选择空的td。@hitman:如果它包含空格,则不可以;除非jQuery实现了CSS的非标准版本
:empty
伪类。@DavidThomas sorry!。。我不知道。谢谢你提供的信息。“如果元素为空,隐藏下一个元素”,“如果前面的元素为空,我希望能够找到一种方法隐藏前面的内容”是隐藏下一个元素的要求?或b)“前面”元素?