将后台返回字符串数据转为jquery对象,并做一些操作

将后台返回字符串数据转为jquery对象,并做一些操作

     在 web 开发中,经常会有后台返回 html 字符串的情况,需要在 js 里将其 转为 juery 对象或者 DOM 并做一些处理,下面这是我在实际中遇到的一点问题,记录一下。

问题如下:

     后台获取的字符串是一大段 html , 然后 转为 juery 对象,从中 取出一部分,本来取出来的也是 juery 对象,大致如下 (转为jquery对象,有的浏览器 会格式化 加换行 \r\n)

                                      var str =  “<TD>合计</TD>” +
                                                         “<TD></TD>” +
                                                           “<TD></TD>” +
                                                            “<TD>5</TD>” +
                                                            “<TD>8</TD>” +
                                                            “<TD>4</TD>” +
                                                           “<TD>0</TD>” +
                                                          “<TD>0</TD>” +
                                                         “<TD>17</TD>” +
                                                         “<TD>8</TD>” +
                                                         “<TD>13</TD>” +
                                                          “<TD>9</TD>” +
                                                         “<TD>5</TD>” +
                                                          “<TD>9</TD>” +
                                                         “<TD>0</TD>” +
                                                          “<TD>44</TD>” +
                                                            “<TD>5</TD>”;        

      前台 需要 合并单元格 ,因此要把前三个 <td> 去掉, 原本是想直接 截取字符串,谁知道 不同浏览器 ,在转为 juery 对象时,有的会自己格式化加上换行 \r\n ,有的不会,因此不同浏览器 字符串长度也不同,截取的不一样,后来就通过判断浏览器来解决。

     后来我想了想,这样兼容性很不好,后来我想了想,可以直接通过 操作 jquery 对象删除 td 的,看了看 jquery 手册 ,找到如下方法:

     1、var dd = $(“<tr>”+str+”</tr>”);    //重点就在这里

     2、 var divHtml = dd.find(‘td:eq(0),td:eq(1),td:eq(2)’).remove();     //找到前三个 td 去掉
            alert(dd.html());

    第一步,外层一定要加上 <tr>,不然转为 jquery 对象是 只会转第一个 <td>,后面的都没有了,而且我试了,外面 加<div> 也不行,外面 加<table>可以,不过它会自动在table下面加上 一层 tbody  ,再加一层 tr

   后来总结下,可以转为 jquery 对象时,外层必须加上一层,而且要符合 html 代码的规则,就好比 td 外面要 加 tr

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论