2015-01-16 46 views
-1

包含onclick事件下面的span標籤不工作Javascript方法參數逃避

var test="<span onClick="gotoNode(\'' + result.name + '\',\'' + result.xaxis + '\',\'' + result.yaxis + '\',\'' + result.detail + '\',\'' + result.status + '\')" />" 

上述轉義字符串有一些問題與方法調用。

我該如何解決?

+2

解決您的問題請問?目前還不清楚你想要什麼 – trainoasis

+0

儘量不要使用內嵌javascript。 – georg

+0

刪除示例代碼可能不是最好的編輯。 – Klors

回答

0

如果你在JavaScript創建此創建一個元素,那麼第一個單引號需要轉義。

function gotoNode(name, xaxis, yaxis, detail, status) { 
 
    alert("name = " + name + "\r\nxaxis = " + xaxis + "\r\nyaxis = " + yaxis + "\r\ndetail = " + detail + "\r\nstatus = " + status); 
 
} 
 

 
var result = { name: "name", xaxis: "xaxis", yaxis: "yaxis", detail: "detail", status: "status" }; 
 

 
var htmlText = '<input value="Button" type="button" onclick="gotoNode(\'' + result.name + '\',\'' + result.xaxis + '\',\'' + result.yaxis + '\',\'' + result.detail + '\',\'' + result.status + '\')" />'; 
 

 
$("#lonely").append(htmlText);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="lonely"></div>

一般來說,任何引用類型,你開始(出'"),你需要逃避要在字符串中使用,並沒有逃脫同樣的同一類型鍵入以終止字符串。您可以保留其他類型而無需轉義。

對於您的編輯版本,如果您希望將這些結果變量替換爲它們的值,這應該可以工作。

var test = "<span onclick=\"gotoNode('" + result.name + "','" + result.xaxis + "','" + result.yaxis + "','" + result.detail + "','" + result.status + "')\" />"; 
+0

這不起作用在控制檯顯示錯誤 - 未捕獲的SyntaxError:意外的字符串。方法調用不會發生 – udhaya

+0

您需要有一個函數gotoNode(){}和一個定義在某處的結果對象 – Klors

+0

var htmlText =''; – udhaya

0

您是否使用php來生成輸出?

那麼你應該嘗試

echo "<input type=\"button\" onClick=\"gotoNode(\" + result.name + \",\" + 
result.xaxis + \",\" + result.yaxis + \",\" + result.detail + \",\" + 
result.status + \")\" />";