根据上面的div添加内容

时间:2017-06-07 18:05:29

标签: jquery

我正在进行自定义,无法更改HTML。不幸的是,这太可怕了。

它具有以下格式:

<div>Thursday 28-02-2015</div>
<table><tr><td>Some content</td></tr></table>
<table><tr><td>Some content</td></tr></table>
<table><tr><td>Some content</td></tr></table>
//And so on

我需要从div中提取内容,并将其作为:after添加到每个表格单元格中。所以有点jQuery派上用场。

var a = $("div").text();
$("td").append("<span>" + a + "</span>");

麻烦的是,HTML重复了一遍。那么如何让jQuery选择正确的div呢?正确的div是表格上方的第一个div。

示例HTML

<div>Thursday 28-02-2015</div>
<table><tr><td>Some content</td></tr></table>
<table><tr><td>Some content</td></tr></table>
<table><tr><td>Some content</td></tr></table>
<div>Friday 29-02-2015</div>
<table><tr><td>Some content</td></tr></table>
<table><tr><td>Some content</td></tr></table>
<table><tr><td>Some content</td></tr></table>
<div>Saturday 30-02-2015</div>
<table><tr><td>Some content</td></tr></table>
<table><tr><td>Some content</td></tr></table>
<table><tr><td>Some content</td></tr></table>

预期产出

<div>Thursday 28-02-2015</div>
<table><tr><td>Some content<span>Thursday 28-02-2015</span></td></tr></table>
<table><tr><td>Some content<span>Thursday 28-02-2015</span></td></tr></table>
<table><tr><td>Some content<span>Thursday 28-02-2015</span></td></tr></table>
<div>Friday 29-02-2015</div>
<table><tr><td>Some content<span>Friday 29-02-2015</span></td></tr></table>
<table><tr><td>Some content<span>Friday 29-02-2015</span></td></tr></table>
<table><tr><td>Some content<span>Friday 29-02-2015</span></td></tr></table>
<div>Saturday 30-02-2015</div>
<table><tr><td>Some content<span>Saturday 30-02-2015</span></td></tr></table>
<table><tr><td>Some content<span>Saturday 30-02-2015</span></td></tr></table>
<table><tr><td>Some content<span>Saturday 30-02-2015</span></td></tr></table>

1 个答案:

答案 0 :(得分:2)

编辑:意识到我过于复杂了。您可以使用div函数循环遍历每个.each()并抓取其内容以在其后添加到表中。

您可以根据需要使用.next()来获取下一个很多表格。

$(function(){
  $('div').each(function(){
    var a = $(this).text();
    $(this).next().find('td')
    .add($(this).next().next().find('td'))
    .add($(this).next().next().next().find('td'))
    .after('<span>' + a + '</span>');
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>Thursday 28-02-2015</div>
<table><tr><td>Some content</td></tr></table>
<table><tr><td>Some content</td></tr></table>
<table><tr><td>Some content</td></tr></table>
<div>Friday 29-02-2015</div>
<table><tr><td>Some content</td></tr></table>
<table><tr><td>Some content</td></tr></table>
<table><tr><td>Some content</td></tr></table>
<div>Saturday 30-02-2015</div>
<table><tr><td>Some content</td></tr></table>
<table><tr><td>Some content</td></tr></table>
<table><tr><td>Some content</td></tr></table>