0

我正在开发一个网页,其表单是通过 javascript (jquery) 动态创建的。对于每组(重复的)表单元素,添加了一个显示/隐藏功能来显示和隐藏元素,我没有让这个显示/隐藏代码工作 - 我怀疑错误位于下面的代码中,我认为我很难将引号放在正确的位置(?)控制台显示错误“Uncaught SyntaxError: Unexpected token }”,我不明白;当排除可疑的错误行时,没有进一步的错误,我看不到这个“}”出现在不应该出现的地方。

Javascript代码:

function ShowHide(id) {
    $(id).toggle();
}


$(document).ready(function () {

    var buildform = function () {
        var form ='<div id="form">'

        for (var i = 0; i < 2; i++) {

            form += '<div id="filename"' + i + '> Document  </div> </td>';
            //error in next line (?)
            form += '<button onclick="ShowHide(\'#filename'+ i +'\')">  Show/hide document </button> </td> </tr>';

        } //for i
        form += '</div>'; //id="form"
        console.log('FORM: '+form);
        return
    } //buildform()

   $("#wrapper").append(form);

}); //$(document).

HTML 代码:

<div id="wrapper"></div>

javaconsole() 的输出:

<div id="form"><div id="filename"0> Document  </div><button onclick="ShowHide('#filename0')">  Show/hide document </button></div><div id="filename"1> Document  </div><button onclick="ShowHide('#filename1')">  Show/hide document </button></div> 
4

2 回答 2

0

正确转义引号

请换行:

form += '<td> <button onclick="ShowHide("#filename'+ i +')">  Show/hide document </button> </td> </tr>';

对此:

form += '<td> <button onclick="ShowHide(\'#filename'+ i +'\')">  Show/hide document </button> </td> </tr>';
                                        ^                 ^
于 2013-11-11T16:46:33.560 回答
0

你的引号是错误的。

  form += '<td> <button onclick="ShowHide(\'#filename'+ i +  '\')">  Show/hide document </button> </td> </tr>';

我匹配括号中的引号,并用\. 此外,您正在保存创建的 html,但永远不会在任何地方显示它实际上会将 html 输出到页面。您需要实际输出创建的信息。例如:

的HTML:

<div ="outputContainer"></div>

在你的函数里面:

$("#outputContainer").html(form);
于 2013-11-11T16:46:07.967 回答