2011-07-10 11 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