[英]Escaping quotes inside quotes in html
不知道為什么這個錯誤發生在 Chrome 和 Edge 中,但不是在 IE 中(是的,業務團隊仍然堅持它)
在此 html 行上看到“Uncaught SyntaxError: Unexpected end of input”
<TR onmouseover="rowColor(this, true);" onmouseout="rowColor(this, false);" onclick='workTicket('displayTicket.action?TICKETID=1367698&TTID=14','1367698');'>
以下是對應的jsp/struts行
<TR onmouseover="rowColor(this, true);" onmouseout="rowColor(this, false);" onclick='workTicket(<c:out value="'displayTicket.action?TICKETID=${dispTO.ticketNbr}&TTID=${dispTO.ticketTypeId}','${dispTO.ticketNbr}'" />);'>
除了 onclick 屬性以單引號開頭之外,我在上面的行中沒有看到任何錯誤。 知道為什么會這樣嗎?
您必須在屬性中包含一組完整的 OTHER 引號
<TR onmouseover="rowColor(this, true);"
onmouseout="rowColor(this, false);"
onclick="workTicket('displayTicket.action?TICKETID=1367698&TTID=14','1367698');">
c沒有問題:out
<TR onmouseover="rowColor(this, true);"
onmouseout="rowColor(this, false);"
onclick="workTicket(<c:out value="'displayTicket.action?TICKETID=${dispTO.ticketNbr}&TTID=${dispTO.ticketTypeId}','${dispTO.ticketNbr}'" />);">
將工作
但我認為這更好
data-tickettypeid="<c:out value="${dispTO.ticketTypeId}" />"
data-ticketnbr="<c:out value="${dispTO.ticketNbr}" />"
onclick="workTicket(`displayTicket.action?TICKETID=${this.dataset.tickettypeid}&TTID=${this.dataset.ticketnbr}`,this.dataset.tickettypeid)"
甚至更好:
document.getElementById("myTable").addEventListener("click",function(e) {
const tgt = e.target.closest("tr");
if (tgt && tgt.getAttribute("data-tickettypeid")) {
workTicket(`displayTicket.action?TICKETID=${tgt.dataset.tickettypeid}&TTID=${tgt.dataset.ticketnbr}`,tgt.dataset.tickettypeid)
}
})
那么你可以使用
<tr data-tickettypeid="<c:out value="${dispTO.ticketTypeId}" />"
data-ticketnbr="<c:out value="${dispTO.ticketNbr}" />">
至於鼠標懸停和移出,使用 CSS
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.