Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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 jQuery.after不接受在启动一个元素后结束该元素_Javascript_Jquery_Html - Fatal编程技术网

Javascript jQuery.after不接受在启动一个元素后结束该元素

Javascript jQuery.after不接受在启动一个元素后结束该元素,javascript,jquery,html,Javascript,Jquery,Html,我有一个由其他软件生成的表,每行包含50列,我试图通过在元素末尾添加一个来打破这些列 这是动态生成的代码: <tbody> <tr> <td class="col1" scope="col">08/22/2014</td> <td class="col2" scope="col">Share</td> <td class="col3" scope="col">Success</td> <td c

我有一个由其他软件生成的表,每行包含50列,我试图通过在元素末尾添加一个来打破这些列

这是动态生成的代码:

<tbody>
<tr>
<td class="col1" scope="col">08/22/2014</td>
<td class="col2" scope="col">Share</td>
<td class="col3" scope="col">Success</td>
<td class="col4" scope="col">Some notes</td>
<td class="col5" scope="col">8/23/2014</td>
  ...etc
<td class="col51" scope="col">End column</td>
如果我使用这个Jquery:

$( ".col4").after('</tr><tr><td>&nbsp;</td>');
它附加但不尊重…它忽略它并添加on,从而生成此代码

<td class="col3" scope="col">Success</td>
<td class="col4" scope="col">Some notes</td>
<tr>
<td> </td>
</tr>
<td class="col5" scope="col">etc...</td>

想知道让JQUERY为我附加它的最好方法是什么?当我在Firebug中修改代码时,断开行会得到所需的输出,只是不知道如何让JQUERY提供所需的输出。

您不能将不完整或非法格式化的HTML作为DOM元素处理。您希望在该列之前收集格式正确的子项,并将它们填充到新的完整项中


如果要将HTML作为文本处理,则需要将其与HTML一起转换为文本,并将其粘贴到实际的、正确关闭的HTML中,然后再将其转换回。

不能使用JQuery单独插入标记。例如,下面的代码将元素插入到主体中:

<html>
    <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    </head>
    <body>
        <script>
            $("body").append("<p>");
        </script>
    </body>
</html>
使用Firefox检查器,DOM看起来是这样的:

因此,$..append,$..append

,$..append都以相同的方式修改DOM

最后2个细胞,将它们附加到tbody上,并用tr包裹


DOM不是这样工作的,每个标记都成为一个元素。你不能分别插入开始标记和结束标记。请尝试使用.wrap。wrap似乎很有趣,但看起来它只会包装我的,这不会完成我尝试的中断,除非我使用错误?选择前四个元素,然后包装::lt4Thanks Brian-我现在正在尝试。分离我就是要走的路!到目前为止,这是唯一可行的答案+1:好的,看来方向是对的。我实现了如上所述,它开始正确地布局。我想我需要研究NextAll做了些什么来制作一些MOD,但它是正确的。NextAll从选择器开始,但在它之后选择all,不包括。如果要包括选择器,请执行nextAll.and self.detach等操作。。
$('.col4').nextAll().detach().appendTo('tbody').wrapAll('<tr />')