如何将Text参数传递给循环中的函数?

时间:2013-03-01 08:15:57

标签: javascript cordova

您好我被困了我需要将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>";

}

5 个答案:

答案 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);
    }

}