2011-07-10 36 views
0

我試圖在點擊修改鏈接時替換某些表格元素,實際上它會替換掉 ,但是href屬性不正確。 有什麼不對嗎?請幫忙,謝謝!jquery replaceWith問題

HTML:

<html> 
<head> 
    <script src="http://code.jquery.com/jquery-latest.js"></script> 
</head> 
<body> 
    <table id="department_list_table" border=1>   
     <tbody> 
      <tr id = 1> 
       <td>department A</td> 
       <td align="center"><a href = "#" onclick = "department_action('modify', 1, 'department A')">modify</a></td> 
       <td align="center"><a href = "#" onclick = "department_action('delete', 1, 'department A')">delete</a></td> 
      </tr>     
      <tr id = 2> 
       <td>department B</td> 
       <td align="center"><a href = "#" onclick = "department_action('modify', 2, 'department B')">modify</a></td> 
       <td align="center"><a href = "#" onclick = "department_action('delete', 2, 'department B')">delete</a></td> 
      </tr>     
     </tbody> 
    </table>   
</body> 

的jQuery:

var id = 3; 
var name = 'department C'; 
$("#department_list_table tbody tr#1").replaceWith(
    '<tr id =' + id + '>' + 
    '<td>' + name + '</td>' + 
    '<td align="center"><a href="#" onclick="department_action("modify",'+ id +',' + name + ')">modify</a></td>' + 
    '<td align="center"><a href="#" onclick="department_action("delete",'+ id +',' + name + ')">delete</a></td>' + 
    '</tr>'); 

結果的螢火:

<tr id="3"> 
<td>department C</td> 
<td align="center"> 
**<a c)"="" modify",3,department="" onclick="department_action(" href="#">modify</a>** 
</td> 
<td align="center"> 
**<a c)"="" delete",3,department="" onclick="department_action(" href="#">delete</a>** 
</td> 
</tr> 

回答

1

您使用雙引號時,你應該使用單引號或逃脫報價:

onclick="department_action(\'modify\','+ i ... 
+0

非常感謝AlienWebguy! – user658619

+0

很高興幫助! :) – AlienWebguy

0

onclick屬性中的雙引號搞亂了html字符串。解決方案是使用\'modify\',但您應該考慮使用$().click在JavaScript中附加事件處理程序。它通常使代碼更易於維護。

+0

嗨Barum,謝謝你的建議,我會試試看! – user658619