簡體   English   中英

將Javascript嵌入php文件中,語法

[英]Embed Javascript in php file, syntax

我使用ajax將數據發布到php文件中,並在其中使用以下代碼進行循環。

我的部分代碼無法正確格式化onclick事件:

$result .= '<a href="#" onclick="$("#element").dialog("open");" ></a>';

我試圖用反斜杠轉義雙引號,但是沒有運氣。 使用反斜杠,在控制台中,我看到:以某種方式從不出現“ =”的地方,也打印了所有反斜杠。 代碼不起作用。

有人可以幫我弄清楚我在語法上的錯誤嗎? 謝謝。

解析HTML時,瀏覽器將讀取onclick="$("#element"部分,並推斷該屬性onclick等於"$(" ,因為它認為找到了雙引號。因此,您需要進行轉義$(之后的雙引號字符。由於您正在使用$result .= 'some_string' (我想在此處使用單引號來體現),因此您無法在單引號引起來的字符串中轉義雙引號字符。因此,您將需要這樣的東西: $result .= '<a href="#" onclick="$(\\'#element\\').dialog(\\'open\\');" ></a>';

現在,PHP在渲染時會將\\'轉換為' ,因此字符串的最終輸出為

<a href="#" onclick="$('#element').dialog('open');" ></a>

我希望這有幫助。

在您的字符串中有雙引號,然后是內容再次用雙引號引起來。 第二個引號應為單引號,但這將終止字符串。 因此,您將不得不逃脫它們。

所需的html代碼應如下所示:

<a href="#" onclick="$('#element').dialog('open');"></a>

為此,您必須將PHP代碼更改為例如以下內容:

$result .= '<a href="#" onclick="$(\'#element\').dialog(\'open\');"></a>';

雙引號應轉義

$result .= '<a href="#" onclick="$(\"#element\").dialog(\"open\");" ></a>';

另一種方法是

$result .= `<a href="#" onclick="$('#element').dialog('open');" ></a>`;

如果使用雙引號定義html屬性,則不能(按原樣)在屬性本身中使用它,而必須對其進行編碼。

$result .= '<a href="#" onclick="'.htmlspecialchars('$("#element").dialog("open");').'" ></a>';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM