簡體   English   中英

如何在字符串中傳遞字符串

[英]How to pass a string in a string

我生成帶有以下鏈接的表行:

"<td>"+table.rows[i].c[0].v+"<a href='#' onclick='loadForm("+table.rows[i].c[2].v+")'>&nbsp;&nbsp;My Link</a></td>" +

table.rows[i].c[2].v = 'my stuff'

然而,在檢查它生成像

<a href="#" onclick="loadForm(my stuff)">&nbsp;&nbsp;My Link</a>

這行不通,因為“我的東西”沒有引號使它成為字符串。 在這種情況下,如何使我的東西變成字符串?

謝謝!

簡短答案:在參數中的字符串中加上引號,並使用反斜杠\\進行轉義:

"<td>"+table.rows[i].c[0].v+"<a href='#' onclick='loadForm(\""+table.rows[i].c[2].v+"\")'>&nbsp;&nbsp;My Link</a></td>" +

長答案:不要用字符串構建HTML元素,它效率低下且難以維護。 而是使用標准的DOM函數:

var td = document.createElement('td');
var a = document.createElement('a');
a.href = '#';
a.onclick = function() { loadForm(table.rows[i].c[2].v); }
a.textContent = '  My Link';
td.appendChild(a);

...然后您可以使用appendChild()td附加到它所屬的行。 我知道它更長,看起來更麻煩,但是它的調試和維護容易得多 也有類似jQuery的庫來幫助使其更快更容易。 我絕對建議您花時間和精力來閱讀它。 谷歌的“ HTML DOM”和環顧四周的教程,MDN通常都有不錯的東西。

我認為模板文字可以在這里工作:

`<td> ${table.rows[i].c[0].v}<a href='#' onclick='loadForm("${table.rows[i].c[2].v}")'>&nbsp;&nbsp;My Link</a></td>`

暫無
暫無

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

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