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)“前面”元素?