如何使用JQuery动态添加一个div? [英] How to dynamically add a div using JQuery?

查看:128
本文介绍了如何使用JQuery动态添加一个div?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下的HTML中显示3文本框和添加按钮:

 < HTML的xmlns =htt​​p://www.w3.org/1999/xhtml>
<头=服务器>
<标题>< /标题>
< /头>
<身体GT;
    <表ID =form1的=服务器>
    < D​​IV ID =容器>
    < D​​IV ID =行项目>
    < ASP:文本框ID =txtLineNumber=服务器>< / ASP:文本框>
    < ASP:文本框ID =txtQty=服务器>< / ASP:文本框>
    < ASP:文本框ID =txtItem code=服务器>< / ASP:文本框>
    < ASP:ImageButton的ID =imgBtnAddNewLineItem的ImageUrl =〜/图片/ add_button.jpg
    =服务器/>
   < / DIV>
   < / DIV>
   < /表及GT;   <脚本类型=文/ JavaScript的SRC =htt​​p://ajax.googleapis.com/ajax/libs/jquery/1.3.2
   /jquery.min.js\">
   < / SCRIPT>
   <脚本SRC =JS / invoice.js类型=文/ JavaScript的>< / SCRIPT>
< /身体GT;
< / HTML>

当用户点击添加按钮,我想创建行项目编号另一个div,并把它放在下一行。我创建了一个js文件,但我不知道该怎么办呢?

下面是我到目前为止有:

VAR ITEMCOUNT = 0;

 函数getLineItem(数字){
    VAR的div = document.createElement方法('DIV');   $(DIV).a​​ttr(ID,订单项+号);
   变种T1 = getTextbox(名为txt+ number.toString()+1);
   变种T2 = getTextbox(名为txt+ number.toString()+2);
   变种T3 = getTextbox(名为txt+ number.toString()+3);   $(格).append(T1);
   $(格).append(T2);
   $(DIV).a​​ppend(T3);   返回$(DIV);
}功能getTextbox(ID){
    VAR文本=使用document.createElement('输入');
    $(文本).attr(ID,身份证);
    返回$(文本);
}
变种lineItemCount = 0;   $('#imgBtnAddNewLineItem')。点击(函数(){    lineItemCount ++;   。$('#线项目)的clone()ATTR('ID',getLineItem(lineItemCount))appendTo('#集装箱')。
    });
});


解决方案

  $(文件)。就绪(函数(){
    $('#imgBtnAddNewLineItem')。点击(函数(){
        $('#集装箱')追加('< D​​IV>< / DIV>');
    });
});

更新2

创建一个正常的按钮,就像这样:

 <输入类型=按钮ID =imgBtnAddNewLineItemVALUE =LINEITEM添加/>

更新 **这也更新了注释等。**

  //算上了LineItem,以确保它们是唯一的
变种lineItemCount = 0;//在文件准备就绪
$(文件)。就绪(函数(){
    //在点击按钮
    $('#imgBtnAddNewLineItem')。点击(函数(五){
        / *
           添加以下行至preVENT回传
           附: - 确保你通过-E-这个功能...         * /
         亦即preventDefault();         //增加lineitemcount
         lineItemCount ++;
         //添加新的订单项到容器上,通过lineItemCount确保getLineItem()可以产生独特的文本框的ID的唯一LINEITEM
         $(容器).append(getLineItem(lineItemCount));
    });
});//创建文本框一个新的div
功能getLineItem(数){
    VAR的div = document.createElement方法('DIV');
    //给这个分区一个唯一的ID    div.setAttribute('身份证','lineitem_'+号码)​​;    //传递独特价值的getTextbox()函数
    VAR T1 = getTextbox('txt_'+数字+'_ 1');
    VAR T2 = getTextbox('txt_'+数字+'_2');
    VAR T3 = getTextbox('txt_'+数字+'_3');    div.appendChild(T1);
    div.appendChild(T2);
    div.appendChild(T3);    返回DIV;
}//创建一个文本框,确保传递给这个函数的ID是唯一的...
功能getTextbox(ID){
    VAR文本=使用document.createElement('输入');
    textbox.setAttribute('身份证',身份证);
    textbox.setAttribute(名称,身份证);
    返回文本框;
}

I have the following html which displays 3 textboxes and an add button:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div id="container">
    <div id="line-item">
    <asp:TextBox ID="txtLineNumber" runat="server"></asp:TextBox>
    <asp:TextBox ID="txtQty" runat="server"></asp:TextBox>
    <asp:TextBox ID="txtItemCode" runat="server"></asp:TextBox>
    <asp:ImageButton ID="imgBtnAddNewLineItem" ImageUrl="~/images/add_button.jpg" 
    runat="server" />
   </div>
   </div>
   </form>

   <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2
   /jquery.min.js">
   </script>
   <script src="js/invoice.js" type="text/javascript"></script>
</body>
</html>

When the user clicks the add button, I want to create another div with the line-item id and put it on the next line. I created a js file, but I am not sure how to do it?

Here is what I have so far:

var itemCount = 0;

function getLineItem(number) {
    var div = document.createElement('div');

   $(div).attr("id", "lineitem" + number);
   var t1 = getTextbox("txt" + number.toString() + "1");
   var t2 = getTextbox("txt" + number.toString() + "2");
   var t3 = getTextbox("txt" + number.toString() + "3");

   $(div).append(t1);
   $(div).append(t2);
   $(div).append(t3);

   return $(div);
}

function getTextbox(id) {
    var textbox = document.createElement('input');
    $(textbox).attr("id", id);
    return $(textbox);
}


var lineItemCount = 0;

   $('#imgBtnAddNewLineItem').click(function() {

    lineItemCount++;

   $('#line-item').clone().attr('id',getLineItem(lineItemCount)).appendTo('#container');
    });
});

解决方案

$(document).ready(function() {
    $('#imgBtnAddNewLineItem').click(function() {
        $('#container').append('<div></div>');
    });
});

Update 2

Create a normal button like so:

<input type="button" id="imgBtnAddNewLineItem" value="Add lineitem" />

Update ** This is also updated with comments etc.. **

//Count the lineItems to make sure they are unique
var lineItemCount = 0;

//On document ready 
$(document).ready(function() {
    //On button click
    $('#imgBtnAddNewLineItem').click(function(e) {
        /*
           ADD THE FOLLOWING LINE TO PREVENT THE POSTBACK
           P.S. - Make sure you pass -e- to this function... 

         */
         e.preventDefault();



         //Increase the lineitemcount
         lineItemCount++;
         //Add a new lineitem to the container, pass the lineItemCount to make sure getLineItem() can generate a unique lineItem with unique Textbox ids
         $(container).append(getLineItem(lineItemCount));
    });
});

//Create a new DIV with Textboxes
function getLineItem(number) {
    var div = document.createElement('div');
    //Give the div a unique id

    div.setAttribute('id','lineitem_' + number);

    //pass unique values to the getTextbox() function
    var t1 = getTextbox('txt_' + number + '_1');
    var t2 = getTextbox('txt_' + number + '_2');
    var t3 = getTextbox('txt_' + number + '_3');

    div.appendChild(t1);
    div.appendChild(t2);
    div.appendChild(t3);

    return div;
}

//Create a textbox, make sure the id passed to this function is unique...
function getTextbox(id) {
    var textbox = document.createElement('input');
    textbox.setAttribute('id',id);
    textbox.setAttribute('name',id);
    return textbox;
}

这篇关于如何使用JQuery动态添加一个div?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆