我正在研究VS2103 Cordova App。我创建了项目列表。当我按下项目时,我想将数据传递到另一个页面。我已经通过jQuery创建了这个列表。
这是我的代码:
for (var i = 0; i < data.length; i++) {
if ((Provider == "Doctors")) {
$("#list").append('<li class="list-message" ><a class="w-clearfix w-inline-block" href="javascript:ProviderDetails(' + data[i].DoctorName + ',' + data[i].DoctorAddress + ',' + data[i].DoctorPhone + ',' + data[i].DoctorPhone2 + ',' + data[i].DoctorPhone3 + ',' + data[i].DocLat + ',' + data[i].DocLong + ',' + data[i].DoctorNotes + ',' + data[i].Category + ');" data-load="1"><div class="w-clearfix column-left"><div class="image-message"><img src="images/Doctors.png"></div></div><div class="column-right"><div class="message-title">' + data[i].DoctorName + '</div><div class="message-text">' + data[i].DoctorAddress + '</div></div></a></li>');
}
}
这是我的功能:
function ProviderDetails(Name, Address, Tel, Phone2, Phone3, Lat, Lang, Notes, Category) {
localStorage.setItem("Name", Name);
localStorage.setItem("Address", Address);
localStorage.setItem("Tel", Tel);
localStorage.setItem("Phone2", Phone2);
localStorage.setItem("Phone3", Phone3);
localStorage.setItem("Lat", Lat);
localStorage.setItem("Lang", Lang);
localStorage.setItem("Notes", Notes);
localStorage.setItem("Category", Category);
window.location.href = "../Details.html";
}
当我按任何项目时,它没有做任何事情。有什么帮助吗?
答案 0 :(得分:1)
注意你如何构建字符串:
href =&#34; javascript:ProviderDetails(&#39; + data [i] .DoctorName +&#39;,&#39; ......
你需要添加字符串分隔符:
href =&#34; javascript:ProviderDetails(\&#39;&#39; +&#34; data [i] .DoctorName&#34; +&#39; \&#39;,\&# 39;&#39; .....
您的功能声明为:
function ProviderDetails(Name, Address, Tel, Phone2, Phone3, Lat, Lang, Notes, Category) { .... }
现在,因为您的函数需要字符串作为输入,所以您可以将函数称为:
ProviderDetails(&#39; string1&#39;,&#39; string2&#39;,.....)
你的javascript循环产生:
ProviderDetails(string1,string2,.....)
对于javascript,现在将参数视为变量,即string1不再是字符串,而是包含在变量string1中的值。 但是因为你没有这样的变量,你的函数调用不起作用。
因此,分隔符对于指示js理解字符串的开头和结尾非常重要。
作为分界符,您可以使用符号:&#39;或&#34;。
但是如果你想在字符串中使用它,你需要转义分隔符:
var a =&#39;这不是一个字符串&#39 ;; //错误,因为内部分隔符未被转义。
var a =&#39;这不是一个字符串&#39 ;; // OK,因为内部分隔符已转义
当然,如果你在字符串中使用另一个分隔符,则不需要将其转义。
var a =&#34;这不是一个字符串&#34 ;; //这没关系