insertafter 数据卡在其上方的单元格中

如何解决insertafter 数据卡在其上方的单元格中

我遇到了一个问题,我的 .insertafter 数据显示卡在其父数据的一个单元格内,尽管它是自己的一行,有自己的 div。 (请看下图)

picture of the layout

抓取 insertafter 数据的 AJAX 代码如下:

function options(id){           
        jQuery.ajax({
        type: 'post',url: my_ajax.ajax_url,data: {             action: 'options_function',cid : id
        },success: function (data) {
var $newElement=jQuery("<div>",{id:'ideal_option',html:data}
)
$newElement.insertAfter(jQuery('[data-id="' + id + '"]').closest('tr'))

这是表格本身的 PHP 和 HTML。

echo "<table id ='ideal_option' >"; 
        echo '<tr style="display:inline-table; width:100%">';
        echo '<th>' . "Table". '</th>','<th>' . "Size". '</th>','<th>' . "Name". '</th>','<th>' . "Party". '</th>';
        echo '</tr>';
        echo '<tr>';
foreach($check_availability as $available){ 
    $tbl_id=$available->id;
    $foh_nmbr=$available->FOH_Number;
    $tbl_type=$available->Type;
    echo '<tr>';
    echo '<td>' . $foh_nmbr . '</td>';
    echo '<td>' . $tbl_type . '</td>';
    echo("<td><select>");
foreach($Staff_On_Duty as $person){         
    echo("<option value = $sf_name_option&nbsp;$sl_name_option");
    if (($sf_name_option == $sf_name) && ($sl_name_option == $sl_name)) echo (" selected"); 
    echo(">$sf_name_option&nbsp;$sl_name_option</option>"); 
}
echo("</select></td>");
    
    echo '<td>' . "<button id='party' class='button' onclick='party($tbl_id,$cid)'><i class='icon fas fa-globe'></i></button>" . '</td>'; 
echo '</tr>';}
echo '</table>';

我曾尝试向表格添加样式,例如宽度:100% 和显示(字面上都尝试了它们),但没有将整个表格从其上方的单元格中移除。

编辑 1 使用

的建议

jQuery('[data-id="' + id + '"]').closest('tr').find('td:last').append($newElement) 它将附加数据放在旁边而不是下面。我已经尝试了 tbody 上的所有显示类型,但没有将数据放在行下。

enter image description here

编辑 2 使用这段代码时,结果是

var $newTR = jQuery("<tr>")
var $newTD = jQuery("<td>",html:data,colspan:4}) // I assume 4 columns
$newTR.append($newTD)

// Then here,.insertAfter() is the right method
$newTR.insertAfter(jQuery('[data-id="' + id + '"]'))

enter image description here

编辑 3 代码

var $newElement=jQuery("<tr>",html:data}
)
$newElement.insertAfter(jQuery('[data-id="' + id + '"]').closest('tr'))

提供:

enter image description here

解决方法

jQuery .insertAfter() 在作为参数提供的目标之后插入一个元素。

所以这里的 $newElement.insertAfter(jQuery('[data-id="' + id + '"]').closest('tr')) 是在最近的 <dvi> 元素的结束标记之后插入一个 tr 元素。

即使您修正了 dvi 明显的错字...

您将在 <div> 中插入一个 <table> 元素,因此是无效的 HTML。

我想你应该寻找 .append() 方法来代替...

将一个 div 附加到 td 的最后一个 tr

jQuery('[data-id="' + id + '"]').closest('tr').find('td:last').append($newElement)

编辑基于下面的评论。

这很管用。它将新的 div(是错别字)放在行旁边而不是下面。

如果您想在下面多加一行,那么在 td 内创建一个 tr

试试这个:

var $newTR = jQuery("<tr>")
var $newTD = jQuery("<td>",{id:'ideal_option',html:data,colspan:4}) // I assume 4 columns
$newTR.append($newTD)

// Then here,.insertAfter() is the right method
$newTR.insertAfter(jQuery('[data-id="' + id + '"]'))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?