1

我正在构建一个表格。那里没问题。除了提交按钮之外,我还有另一个按钮,当单击该按钮时,会在表单中添加另一个字段。我正在尝试使用 javascript (jquery) 来执行此操作。不用说我没有运气。我尝试了许多不同的方法,这是我放弃的方法:

$("#snew").click(function () {  
var container = $("#sblc").add("div");
var content = "<select> <option>Domestic</option><option>Tiger</option><option>Peeled                  Raw</option><option>Cooked Peeled Tail On<option></select><select> <option>1 lbs</option>   <option>2 lbs</option><option>3 lbs</option></select>";

                $(container).attr("class", "opt");
                $(container).append(content); 
                $(container).appendTo("#sblc"); 

            })

这是对应的 HTML:http: //pastie.org/3729304 (我不知道如何让 HTML 在这里正确显示。抱歉链接。)

每当我尝试这个时,我最终要么得到一个完全白页,要么什么都没有发生。任何帮助将不胜感激。

4

6 回答 6

0

您的附加方式有误。

http://jsfiddle.net/NYnYw/

于 2012-04-04T21:02:11.613 回答
0

试试下面的东西,

演示

$("#snew").click(function() {
    var container = $("<div />");
    var content = "<select> <option>Domestic</option><option>Tiger</option><option>Peeled                  Raw</option><option>Cooked Peeled Tail On<option></select><select> <option>1 lbs</option>   <option>2 lbs</option><option>3 lbs</option></select>";

    $(container)
        .attr("class", "opt") //add class to the div container
        .append(content)      //append select to the div
        .appendTo("#sblc");   //append div to #sblc

});
于 2012-04-04T21:03:28.210 回答
0

这将适用于您提供的代码:

$("#snew").click(function () {
    var container = $("#sblc");
    var content = "<div><select> <option>Domestic</option><option>Tiger</option><option>Peeled                  Raw</option><option>Cooked Peeled Tail On<option></select><select> <option>1 lbs</option>   <option>2 lbs</option><option>3 lbs</option></select></div>";

    $(container).attr("class", "opt");
    $(container).append(content);
})
于 2012-04-04T21:03:40.613 回答
0

您的逻辑似乎很奇怪...您首先声明containeras $("#sblc").add("div")which 指的是一个 jQuery 对象集合,该集合同时包含#sblc尽可能多的对象div。这真的是你想要做的吗?
然后,您将container不必要的 jQuery 对象双重包装。
让我觉得不寻常的部分是$(container).appendTo("#sblc")。您要附加双包装container,或附加#slbc + divs#slbc?? 不明白......
你可以尝试这样的事情:

$("#snew").click(function () {

    var $container =  # ('#slbc'),
        materials = ['Domestic', 'Tiger', 'Peeled Raw', 'Cooked Peeled Tail On'],
        values = ['1 lbs', '2 lbs', '3 lbs'],
        html = '<select><option>' + materials.join('</option><option>') + '</option></select>' +
            '<select><option>' + values.join('</option><option>') + '</option></select>';

    $container.append(html).addClass('opt');

});
于 2012-04-04T21:08:42.840 回答
0

我认为你需要这样做:

var container = $("<div>"); // notice the `<` and `>`

这样,您可以创建新DIV容器,append然后再创建(您已经这样做了)

于 2012-04-04T20:59:26.557 回答
0

简单地调用一次 append 怎么样:

    $("#sblc").append("<div class=\"opt\"><select><option>Domestic</option><option>Tiger</option><option>Peeled                  Raw</option><option>Cooked Peeled Tail On<option></select><select> <option>1 lbs</option><option>2 lbs</option><option>3 lbs</option></select></div>");
于 2012-04-04T21:00:11.240 回答