今天在寫html頁面中使用JavaScript拼湊DOM元素時,出現「missing ) after argument list 」的錯誤,試了很長時間才解決,記錄以便之後查看javascript
<ul class="dropdown-menu" id="menus"> <script type="text/javascript"> $(function () { $.post('/ImageManager/GetAllImageData?plugin=LS.SGYC.Management', { page: 1, rows: 100 }, function (data) { $.each(data, function (index, value) { $('#menus').append("<li><a href='javascript:void(0)' onclick='showCompareImage(" + value.ImageUrl + ")'>" + value.ImageName + "</a></li>"); }) }, 'json') }) </script> </ul>1234567891011html
錯誤出在下面這句代碼java
$('#menus').append("<li><a href='javascript:void(0)' onclick='showCompareImage(" + value.ImageUrl + ")'>" + value.ImageName + "</a></li>");1json
主要是雙引號和單引號的嵌套使用 測試1、測試解決方案時,試着在value.ImageUrl處添加單引號(以下)app
$('#menus').append("<li><a href='javascript:void(0)' onclick='showCompareImage('" + value.ImageUrl + "')'>" + value.ImageName + "</a></li>");1post
結果出現「unexpected }」的錯誤 測試2、將最外面的雙引號和內部的單引號,所有互換,以下測試
$('#menus').append('<li><a href="javascript:void(0)" onclick="showCompareImage("' + value.ImageUrl + ')">' + value.ImageName + '</a></li>');1htm
發現錯誤任然存在。 查找解決方案後,使用轉義符將雙引號進行轉義,解決問題,最終代碼以下:ip
$('#menus').append("<li><a href='javascript:void(0)' onclick='showCompareImage(\"" + value.ImageUrl + "\")'>" + value.ImageName + "</a></li>");1pdo
GOOD LUCK!!!