Jquery / JS:替换表中的一行

时间:2012-12-19 17:21:30

标签: javascript jquery

我正在尝试使用JQuery替换整行,但似乎无法正常工作(该行未被替换)。以下是示例代码的链接:http://jsfiddle.net/s2kwb/

JavaScript的:

$("td.99999").first().parent().next().replaceWith("<tr><td >category 3</td>
<td >2222</td>
<td >something 22</td>
<td >something 22</td>
<td >$3,433</td>
<td >$300</td>
<td >$3,733</td>
<td >$349</td>
<td >$4,082</td>
</tr>");​

HTML:

<table border="1">
<tr >
  <th>category</th>
  <th>rank</th>
  <th>priority</th>
  <th>contact</th>
  <th>price</th>
  <th>tax</th>
  <th>total price</th>
  <th>shipping</th>
  <th>Net payment</th>
</tr>
<tr class="displaytagOddRow">
  <td class="99999">category 1</td>
  <td class="99999">99999</td>
  <td class="99999">something</td>
  <td class="99999">something</td>
  <td class="99999 alignRight">$3,433</td>
  <td class="99999 alignRight">$300</td>
  <td class="99999 alignRight">$3,733</td>
  <td class="99999 alignRight">$349</td>
  <td class="99999 alignRight">$4,082</td>
</tr>
<tr class="displaytagOddRow" style="Background-color:Red">
  <td class="3333">category 2</td>
  <td class="3333">3333</td>
  <td class="3333">something</td>
  <td class="3333">something</td>
  <td class="3333 alignRight">$3,433</td>
  <td class="3333 alignRight">$300</td>
  <td class="3333 alignRight">$3,733</td>
  <td class="3333 alignRight">$349</td>
  <td class="3333 alignRight">$4,082</td>
</tr>
</table>

我做错了什么?

提前致谢。

2 个答案:

答案 0 :(得分:5)

终止每一行的字符串。另请参阅updated jsFiddle

$("td.99999").first().parent().next().replaceWith("<tr><td >category 3</td>" +
    "<td >2222</td>" +
    "<td >something 22</td>" +
    "<td >something 22</td>" +
    "<td >$3,433</td>" +
    "<td >$300</td>" +
    "<td >$3,733</td>" +
    "<td >$349</td>" +
    "<td >$4,082</td>" +
    "</tr>");​

Google JavaScript Style Guide建议使用此字符串连接,并针对具有备用反斜杠换行符的多行字符串进行建议。

  斜杠后的

空格会导致棘手的错误

答案 1 :(得分:2)

修复错误并添加jQuery作为参考使其工作:

DEMO

你的字符串不是正确的字符串文字。浏览器调试工具中的控制台也声明:

  

SyntaxError:unterminated string literal [Break On This Error]

     

$( “td.99999”)。第一()。父()。下一个()replaceWith。(“类   3

修正脚本:

$("td.99999").first().parent().next().replaceWith("<tr><td >category 3</td><td >2222</td><td >something 22</td><td >something 22</td><td >$3,433</td><td >$300</td><td >$3,733</td><td >$349</td><td >$4,082</td></tr>");