在儿童中更改 html

Change html in children

本文关键字:html      更新时间:2023-09-26

我有一个用于创建 excel 报告的 html 文档。以下是 jsfiddle 中示例 html 的链接:

http://jsfiddle.net/UrM7k/

我希望编辑 html 内容,以便每个时间段的两行我将有一行,
用" - "分隔。这是我尝试过的一些代码:

var fromTime = $(div).find("td.date_range");
    //replace new line between dates with "-" sepeartor
    var replaced = fromTime.html().replace(/<br's?'/?>/, " - ");
    //fromTime.html(replaced);

它确实删除了多余的行,
但它将所有周期更改为与第一个周期相同。

会得到任何帮助。谢谢欧梅尔

你很接近。您可以使用each()进行迭代,this引用当前项:

http://jsfiddle.net/4v3sE/

$("td.date_range").each(function() {
    var $this = $(this);
    $this.html($this.html().replace(/<br's?'/?>/, " - "));
});

但我认为这个解决方案更干净:

http://jsfiddle.net/wfYnH/

$("td.date_range br").replaceWith(' - ');
$(div).find("td.date_range").each(function() {
    var replaced = $(this).html().replace(/<br's?'/?>/, " - ");
    $(this).html(replaced);
});

fromTime 是整个单元格集,但你只调用一次 replace()。 我怀疑您需要遍历该集合,并分别为每个集合进行 replace() 调用。