js实现html表格<td>标签中带换行的文本显示出换行效果

遇见问题

如下内容中我写了几行,但是表格中并未按行显示,换行符反而变成了空格,于是想自己转换下

思考问题

1、可以看到表格的内容是后端传来的数据,于是想直接在后端转换下,把换行符替换成<br>标签

2、想到就做,如下,写好后一跑,发现,<br>只是显示成了文本,并不会被html识别成标签。。。啪啪啪打脸

3、继续想,准备在数据加载后,在js里面处理下,把文本内容中的换行符转为<br>标签;但是如果一个内容有多行文字,我就要把它拆分为多个小节,<br>好加,但是这些分开的文字怎么连在一起呢,势必还需要继续加标签,那么加什么标签呢?准备加span等等。。

等下,我直接加个p不就行了吗?把原先每一小节的内容放到一个p里。好,就这么干把。。

解决问题

1、首先,网页加载好执行处理函数

$(document).ready(function(){
    turnGray(); //完成状态数据背景置灰
    replaceBr(); //内容中换行符显示
});

2、处理函数如下

//内容显示换行符
function replaceBr(){
    var content = $(‘.data_table tr td:nth-child(3)‘);
    content.each(function(){
        var txt = $(this).text();
        var j =0;
        var span = document.createElement("span");
        for(i=0;i<txt.length;i++){
            if(txt.charAt(i)==‘\n‘){
                var p = document.createElement("p");
                var partTxt = txt.slice(j,i);
                p.innerHTML = partTxt;
                //由于p标签内容为空时,页面不显示空行,加一个<br>
                if(partTxt==‘‘){
                    p.appendChild(document.createElement("br"));
                }
                span.appendChild(p);
                j = i + 1;
            }
        }
        var p_end = document.createElement("p");
        p_end.innerHTML = txt.slice(j);
        $(this).text(‘‘);
        span.appendChild(p_end);
        $(this).append(span);
    });
}

3、期间又遇到一个问题,按想象中写好之后执行效果如下:

4、WTF!!我的第四行跑哪去了?F12看了下,第四行的p也是有的啊,好吧,p内容是空它不显示。。。

5、可以看到第2点的代码中标粉色的地方,我给空p加了个br,还是没能绕过br....好吧这下显示正常了

原文地址:https://www.cnblogs.com/kusy/p/9568535.html

时间: 2024-11-09 02:12:04

js实现html表格<td>标签中带换行的文本显示出换行效果的相关文章

select标签中怎样控制option的显示数量

最近做项目,需要动态加载数据显示到下拉列表中. 刚开始用select标签,由于数据较多,一次性全部加载,下拉列表会拖得很长,不忍直视(默认会显示20个). 我想控制select中的option显示的个数,例如:只显示5个,其余的通过滚动条来控制显示. 经过反复折腾,发现直接操作select标签无法达到目的,于是改换策略,用input标签和ul标签来模拟select标签. 效果: Demo下载 select标签中怎样控制option的显示数量,布布扣,bubuko.com

求出数组中所有数字的和&amp;&amp;弹出层效果

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

checkeds 选中获取tbale表格中某一列td标签中的值

例如:  var checkedbox = $("input[type=checkbox][name='cid']:checked")   if (checkedbox.size() == 0) {    alert("提示:请选择要一条要调袋的产品!");    return;   }   var status = checkedbox.parent().parent().nextAll().eq(5).text();   if (status == "

JS,jQuery获取select标签中选中值的方法

JS方法如下: var obj=document.GetElementById("selectId");//声明一个select框对象 var index=obj.selectedIndex;//获取选中项的索引 var text=obj.options[index].text;//获取选中项的文本 var value=obj.options[index].value;//获取选中项的值 jQuery方法如下 $('#selectId option:selected').text();

设置表格td超出内容后截取并以...显示

.ellipsis { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } <table style="table-layout:fixed" id="table" data-toolbar="#toolbar" data-show-refresh="true" data-show-toggle="true" data-s

IE8中marquee不显示出滚动效果的解决办法

随着各种软件的升级,我们系统中的IE6也渐渐被淘汰了,目前主流的浏览器一半的用户已经从IE6直接升级到了IE8,虽然给用户更好的体验,上网更快更方便了,但是对网站制作来说,又是个比较麻烦的问题,因为很多网页代码在不同的浏览器内显示的效果不一样,兼容性控制比较难把握. 今天有个朋友问我为什么他在IE6下,做好的网站可到了客户电脑上打开缺有点异常,因为原来一直使用的marquee滚动标签,在客户电脑上并不出现滚动文字而是一片空白,怎么修改代码都不显示内容.在这里要说一点就是对于marquee标签也就

用 zoom.js 给博客园中博文的图片添加单击时弹出放大效果

1.写在前面 由于博客园本身不提供的上传图片后提供单击图片放大的功能,但是我们看到了有些博文却拥有放大图片的功能,自己也想拥有此项功能怎么办呢?博客园的好处就是提供了自定义功能了,具体是怎么实现的呢? 首先我们打开我的博客——管理——设置——申请到JS权限. 拿到权限后,接着去github下载zoom.js功能文件...... 下载解压取出zoom.js和zoom.css文件,将俩个文件上传到——我的博客——管理——文件:如图 点击进入文件,复制URL,如:https://blog-static

td标签内的内容过长导致的问题的解决办法

问题描述:在开发过程中,td标签中的有一个cell格中的内容过长,导致td标签高度增加,从而导致整个页面内容的不协调: 当td标签高度增加,而表格所在的div高度又固定的时候,会导致最后一行的内容丢失. 解决方法: 给td标签加style属性: style="white-space:nowrap;word-break:keep-all;text-overflow:ellipsis;overflow:hidden;" width="200" 解释: 使用text-ov

td中不包含汉字的字符串不换行,包含汉字的能换行的问题原因及解决方法

今天项目中遇到一个问题,一长串的字符串如:003403FF0014E54016030CC655BC3242,但是如:中国河北省石家庄市裕华区槐安路雅清街交口 这样的就可以换行. 原因是:英文字母之间如果没有空格,系统认为是一个单词,就不会自动换行.汉字就没有这种情况. 解决办法: 用表格把要显示的内容装起来.在<table>标签中加入"style='TABLE-LAYOUT: fixed'",在需要强制单词换行的<td>标签中加入"style='wor