2010-06-08 8 views
4

<a> 태그를 만들고이 태그를 <td> 테이블에 설정하려고했습니다. 문자열은 완벽하게 작성되었지만 jQuery를 사용하여 innerHTML로 설정하면 문자열이 손상됩니다. 왜 이런 일이 일어나는지 알 수 없습니까? 모든 단서?jQuery innerHTML이 제대로 작동하지 않습니다. (!)

는 여기가 <td>에서 설정하고자하는 문자열입니다 :

<a onclick='return EditIssueItemBatch('1c1e27a2-beac-4772-a26f-6a7e05529a65', '498ba483-ca06-4b23-b3a9-0085e4760ff1')'>Edit</a> 

그러나 여기가 innerHTML을로 설정 한 후 모습입니다 :

<A onclick="return EditIssueItemBatch(" ?498ba483-ca06-4b23-b3a9-0085e4760ff1?)? 1c1e27a2-beac-4772-a26f-6a7e05529a65?,>Edit</A> 

을 그리고 다음은 내 코드 조각이다 ..

var tr = $("#itemIssueBatchListTable > tbody:last").children()[data.Index + 1]; 
... 
... 
var strBuff = []; 
strBuff.push("<a onclick='return EditIssueItemBatch('"); 
strBuff.push(data.ItemIssueBatch.ItemCode_FK); 
strBuff.push("', '"); 
strBuff.push(data.ItemIssueBatch.StockDetCode_FK); 
strBuff.push("')'>Edit</a>"); 
tr.cells[9].innerHTML = strBuff.join(""); 
... 
... 
+2

innerJML에 값을 할당 할 때 jquery를 사용하지 않는다는 점에 유의하십시오. 이는 jquery와는 아무런 관련이 없으므로 일반 자바 스크립트 일뿐입니다. Jquery 방식은 다음과 같습니다. $ (tr.cells [9]) .html (strBuff.join (""))); – Razor

+0

답장을 보내 주셔서 감사합니다. 이 문자열을 이스케이프 처리하면 David이 제안한대로 처리됩니다. $ (tr.cells [9]) .html (strBuff.join (""))은 문자열을 올바르게 이스케이프해도 작동합니다. – Kayes

답변

7

첫 번째끝 부분에서 onclick 속성을 종료합니다. 양쪽에 작은 따옴표를 사용하여호출은 속성 값을 둘러싸고 그 내용 안에 - 당신은 당신의 따옴표를 혼합해야합니다

var strBuff = []; 
strBuff.push("<a onclick=\"return EditIssueItemBatch('"); 
strBuff.push(data.ItemIssueBatch.ItemCode_FK); 
strBuff.push("', '"); 
strBuff.push(data.ItemIssueBatch.StockDetCode_FK); 
strBuff.push("')\">Edit</a>"); 
tr.cells[9].innerHTML = strBuff.join(""); 

는 사실, 당신은 당신의 질문에서 작성한 HTML 중 하나가 작동하지 않을 "원하는" 같은 이유로.

0

시도 tr.cells[9].html(strBuff.join("")) 대신.

관련 문제