[英]Javascript JQuery - dynamic button creation with events with parameters
我正在嘗試使用分配給它們的事件在html中為頁面創建和附加按鈕,這樣:
var mdata = JSON.parse(data);
mdata.forEach(function(k) {
$("#routesPage").append("<button class='accordion' onclick='setRoute("+k._id.$id+")'>"+k.nombre+"</button>");
routesArray[k._id.$id]=k;
});
以前我正在調用一個PHP服務,它給我一個MongoDB數據庫的數據,對於每個數據,我想創建一個帶有指定變量的按鈕並調用setRoute()。 k._id。$ id是一個字符串,格式正確。 我收到這個錯誤:
Uncaught SyntaxError: Invalid or unexpected token
我無法弄清楚問題所在。 有沒有辦法解決這個問題或以更有效的方式做到這一點?
更新:這是我從數據庫中收到的原始數據。
[{"_id":{"$id":"58f224ec34189e19cce416d9"},
"origin":"Chicago, IL",
"destination":"Los Angeles, CA",
"waypoints":[
{"location":"Joplin, MO","stopover":false},
{"location":"Oklahoma City, OK","stopover":true}],
"provideRouteAlternatives":false,"travelMode":"WALKING",
"unitSystem":"google.maps.UnitSystem.METRIC",
"nombre":"Ruta de Chicago a Los Angeles"}, ...
沒有錯誤。 也許問題出在其他地方? 您是否使用PHP和Ajax獲取數據?
var routesArray = Array(); var mdata = JSON.parse('[{"_id":{"$id":"58f224ec34189e19cce416d9"},"origin":"Chicago, IL","destination":"Los Angeles, CA","waypoints":[{"location":"Joplin, MO","stopover":false},{"location":"Oklahoma City, OK","stopover":true}],"provideRouteAlternatives":false,"travelMode":"WALKING","unitSystem":"google.maps.UnitSystem.METRIC","nombre":"Ruta de Chicago a Los Angeles"}]'); mdata.forEach(function(k) { $("#routesPage").append("<button class='accordion' onclick='setRoute(\\"" + k._id.$id + "\\")'>" + k.nombre + "</button>"); routesArray[k._id.$id] = k; }); function setRoute(id) { console.log(id); }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <div id="routesPage"></div>
將onclick='setRoute(" + k._id.$id + ")'
更改為onclick='setRoute(\\"" + k._id.$id + "\\")'
並檢查是否有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.