1

我想使用 java 脚本将 div 和 span 标签更改为 tr td 。但是java脚本替换功能只替换第一次出现并保持原样。

<div style="width:100%">
  <div style="border-bottom:1px solid #DDDDDD; padding:10px 0px; height:100%; overflow:hidden;">
    <span style="width:420px; display:block; float:left; border-bottom:1px thin #333333;background:#F2F2F2">
      Custom Stirrups : Category - Adult ,Size-One size fits most 
    </span> 
    <span style="width:220px; display:block; float:left; border-bottom:1px thin #333333;background:#F2F2F2">
      NO
    </span>
    <span style="width:140px; display:block; float:left; border-bottom:1px thin #333333;background:#F2F2F2">
      1
    </span><br />
  </div>
  <div style="border-bottom:1px solid #DDDDDD; padding:10px 0px; height:100%; overflow:hidden;"> 
    <span style="width:420px; display:block; float:left; border-bottom:1px thin #333333;background:#F2F2F2">
      Flat Visor Fitted : Fitted Sizes - 7 1/8 
    </span> 
    <span style="width:220px; display:block; float:left; border-bottom:1px thin #333333;background:#F2F2F2">
      NO 
    </span> 
    <span style="width:140px; display:block; float:left; border-bottom:1px thin #333333;background:#F2F2F2">
      1
    </span>
    <br />
  </div>
</div>

我想要类似的东西

<table width="100%">
        <tbody>
          <tr>
            <td width="471" style="background:#F2F2F2">Cap : Fitted Sizes - 6 5/8 </td>
            <td width="240" style="background:#F2F2F2">YES</td>
            <td width="145" style="background:#F2F2F2">1</td>
          </tr>
          <tr>
            <td width="471" style="background:#F2F2F2">Grey Dri-fit Undershirt : Size - XXL </td>
            <td width="240" style="background:#F2F2F2">YES</td>
            <td width="145" style="background:#F2F2F2">1</td>
          </tr>
         </tbody>
      </table>

这是我正在尝试的脚本...请让我知道我错在哪里

var data = $('#dvData').html();
  data = data.replace('/<div style="width:100%">/g', '<table width="100%"><tbody><tr>');
  data = data.replace('/</div>/g', '</tbody></table></tr>');

提前致谢..

4

5 回答 5

0

你可以尝试这样的事情......我知道这不是最好的方法......

var data = $('#dvData').html();
  data = data.toString();
    data = data.replace('<div style="width:100%">', '<table width="100%">');
data = data.replace('span', 'td');
于 2013-10-07T07:05:20.220 回答
0

http://www.w3schools.com/jsref/jsref_replace.asp 是全局替换:

var str="Mr Blue has a blue house and a blue car";
var n=str.replace(/blue/g,"red");

那里也提供了其他示例。

于 2013-10-07T06:47:18.887 回答
0

我看到你也标记了 jquery,所以假设你也接受 jquery?

您可以为此使用.replaceWith()

$('span, div, tr , td').replaceWith('Replaced!');
于 2013-10-07T06:48:27.787 回答
0

好吧,当解析 dom 时,它是不可更改/不可变的

你可以试试这个:

$('div').contents().unwrap().wrap('<tr/>');

看看那里的 tr 标签...

如果它有效,试试这个

$(this).replaceWith($('<tr>' + this.innerHTML + '</tr>'));
于 2013-10-07T06:58:33.017 回答
0

所以尝试使用 .replaceAll()。如果没有帮助,请使用循环。

于 2013-10-07T08:20:34.270 回答