您好我被困了我需要将Status传递给Apply()函数。但是当我把Apply(“+ Status +”);进入for循环它似乎不起作用。但如果Status等于某个数字,它就可以工作。请帮忙。这是我的代码。
状态等于“完成,未完成”。
function querySuccess(tx, results, Type, Status, Amount, Years){
var len = results.rows.length;
var display = "";
display +="<table>";
display +="<tr>";
display +="<td>First Year Rate</td>";
display +="<td>Apply Now</td>";
display +="</tr>";
for (var i=0; i<len; i++){
display +="<tr>";
display +="<td>"+ results.rows.item(i).first_year+"</td>";
display +="<td><input type'button' onClick='Apply();' value='Apply'/></td>";
display +="</tr>";
}
display +="</table>";
}
答案 0 :(得分:0)
试试Apply(\""+ Status +"\");
。转义的引号告诉JS有文本,否则它认为有一些变量。
您可以使用单引号Apply('"+ Status +"');
,但这需要在您的代码中进行一些修改。
答案 1 :(得分:0)
如果status是一个字符串,你需要像这样封装它:
display +="onClick=\"Apply('"+ Status +"');\" ";
请注意单引号和双引号的不同用法
答案 2 :(得分:0)
如果Status是字符串,则必须使用“”例如“String”。在你的情况下,这应该工作:
display +="<td><input type'button' onClick='Apply("'+Status+'");' value='Apply'/></td>";
数字有效,因为它们不需要撇号,这就是为什么它们被正确处理。
我制作了更简单的示例,并使用您的代码来展示它。检查您的JavaScript控制台以查看结果: http://jsfiddle.net/EE8hN/
答案 3 :(得分:0)
检查一下。这将起作用 display + = '<td><input type="button" onClick="Apply('+status+')" value="Apply"/></td>'
答案 4 :(得分:0)
function querySuccess(tx, results, Type, Status, Amount, Years){
var len = results.rows.length;
var display = document.createElement('table');
var tr = document.createElement('tr');
var td = document.createElement('td');
var tmpEl;
var tmpTr = tr.cloneNode();
var tmpTd = td.cloneNode();
tmpTd.textContent = "First Year Rate";
tmpTr.appendChild(tmpTd);
tmpTd = td.cloneNode();
tmpTd.textContent = "Apply Now";
tmpTr.appendChild(tmpTd);
display.appendChild(tmpTr);
for (var i=0; i<len; i++){
tmpTr = tr.cloneNode();
tmpTd = td.cloneNode();
tmpTd.textContent = result.rows.item[i].first_year;
tmpTr.appendChild(tmpTd);
tmpEl = document.createElement('input');
tmpEl.type = 'button';
tmpEl.value = 'Apply';
tmpEl.onclick = Apply; // yeah, just like this
tmpTd = td.cloneNode();
tmpTd.appendChild(tmpEl);
tmpTr.appendChild(tmpTd);
}
}