Javascript jQuery.after不接受在启动一个元素后结束该元素
我有一个由其他软件生成的表,每行包含50列,我试图通过在元素末尾添加一个来打破这些列 这是动态生成的代码: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
<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> </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 />')