如何使用jquery仅将数据附加一次

时间:2014-12-18 11:43:25

标签: javascript jquery html

在jquery中,如何在单击按钮时附加数据(文本框,下拉列表),并将这些数据与div标签绑定。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test weekpicker</title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
    $(function() {
        $('.add_child').click(function() {
            $div_open = $('<div id="container">');
            $input1 = $('<input type="text" placeholder="Child Name" />');
            $input2 = $('<select name="gender"><option value="0">Male</option><option value="1">Female</option></select>');
            $div_close = $('</div>');
            $('.append_child').append($div_open);
            $('.append_child').append($input1);
            $('.append_child').append($input2);
            $('.append_child').append($div_close);

        });
    });
</script>
</head>
<body>
<div id="content">
    <input type="button" class="add_child" value="Add child">
    <div class="child_details">
        <div class="append_child"></div>
    </div>
</div>
</body>
</html>

4 个答案:

答案 0 :(得分:6)

在这种情况下,您可以使用jquery .one()

  

将处理程序附加到元素的事件。每个事件类型的每个元素最多执行一次处理程序。

您还需要更改追加逻辑以附加输入,并在.append_child div中选择id容器内的div。这样的东西:

 $('.add_child').one('click',function() {
        $div_open = $('<div id="container"></div>');
        $input1 = $('<input type="text" placeholder="Child Name" />');
        $input2 = $('<select name="gender"><option value="0">Male</option><option value="1">Female</option></select>');
        $('.append_child').append($div_open);
        $('.append_child #container').append($input1);
        $('.append_child #container').append($input2);
   });

<强> Working Demo

答案 1 :(得分:4)

    $(function() {
    $('.add_child').click(
        function() {
            html =  '<div class="container">'+
                    '  <input type="text" placeholder="Child Name" />'+
                    '  <select name="gender">'+
                    '    <option value="0">Male</option>'+
                    '    <option value="1">Female</option>'+
                    '  </select>'+
                    '</div>';
            $('.append_child').append(html);
            $(this).unbind("click");
        }
    );
});

这是做到这一点的一种方式......不确定这是否是你想要的?

答案 2 :(得分:3)

<强> Js Fiddle demo

试试这个

$(function() {
        $('.add_child').one('click',function() {
            $div_open = $('<div id="container">');
            $input1 = $('<input type="text" placeholder="Child Name" />');
            $input2 = $('<select name="gender"><option value="0">Male</option><option value="1">Female</option></select>');
            $div_close = $('</div>');
            $('.append_child').append($div_open);
            $('.append_child').find("#container").append($input1);
            $('.append_child').find("#container").append($input2);
            $('.append_child').find("#container").append($div_close);

        });
    });

答案 3 :(得分:2)

你有两种方式

将一个事件绑定到按钮状

$('.add_child').one('click',function() {
.......
}
第一次点击后

或禁用按钮

 $('.add_child').prop("disabled",true);//add this line in the last of function