Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.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 如果删除了链接,请从html表中删除链接之间的空格_Javascript_Java_Jquery_Html_Css - Fatal编程技术网

Javascript 如果删除了链接,请从html表中删除链接之间的空格

Javascript 如果删除了链接,请从html表中删除链接之间的空格,javascript,java,jquery,html,css,Javascript,Java,Jquery,Html,Css,我的jsp中有下表,其中的链接使用java arraylist在页面加载时动态出现 <%ArrayList<String> display = ArrayList<String>)session.getAttribute("links"); %> <table border="0" width="100%" style =""> <tr></tr> <td width="20%">&

我的jsp中有下表,其中的链接使用java arraylist在页面加载时动态出现

<%ArrayList<String> display  = ArrayList<String>)session.getAttribute("links");       %>
<table border="0" width="100%" style ="">
    <tr></tr>
    <td width="20%"></td>
    <table border="0" width ="50%" id="LinkDisplay">
        <div id="LinkDisplay">
            <%if(display!=null){
            for(int p=0;p<display.size();p++){%>
            <tr><td width="42%">&nbsp;</td><td><a href="javascript:removeLink('<%=display.get(p)%>')"><%=display.get(p)%></a><br></td><td>&nbsp;</td></tr>
            <% } }%>
        </div>
    </table>
    <td></td>
    <tr></tr>
</table>
但当删除链接时,它会在链接之间留下空间。单击链接时如何删除该空间。我试图隐藏甚至试图删除空的td元素(没有链接文本),但没有帮助。。 包含所有链接的页面如下所示:-

单击链接后,将留下如下空白:-

此外,如果有超过10个链接,我想添加滚动条,我们可以在表上这样做。
如果table不是做这一切的正确方法,还有其他简单的方法吗

您应该删除完整的
.closest()
可用于遍历多达
,然后将其删除

$('#LinkDisplay a').click(function () {
    var $this = $(this);
    $this.closest('tr').remove();
});

您仅删除
a
元素,需要删除整个
tr

$('#LinkDisplay a').click(function() { 
    var $this = $(this);         
    $this.parent().parent().remove();
}
或者更好的
$this.parent(#LinkDisplay tr”).remove()

注意:

  • 您不能对多个元素使用相同的
    id=“LinkDisplay”
    ,您在这里将其用于
    table
    div
  • 您的HTML无效。您不能将
    div
    作为
    表的直接子项,它需要修复

是的,您可以在没有
表格的情况下执行此操作,只需为每个链接使用
div
,默认情况下,它们将显示为
,并使用
边距
div
而不是
td
作为内容,这样您可以更好地管理布局。

注意,您的HTML无效。不能将
div
作为
表的子项
您的HTML标记无效。无论如何,在CSS4中,这应该是可能的:
tr:not(:has(li>a)){display:none;}
@RoryMcCrossan可以在这里使用
,只需使用
divs
代替
tr
,就可以轻松地管理布局。
$('#LinkDisplay a').click(function() { 
    var $this = $(this);         
    $this.parent().parent().remove();
}