Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript/jquery动态创建div_Javascript_Jquery_Html - Fatal编程技术网

使用javascript/jquery动态创建div

使用javascript/jquery动态创建div,javascript,jquery,html,Javascript,Jquery,Html,我在html中有两个名为“answerdiv 1”和“answerdiv 2”的div 现在,我想给出/创建唯一的div id,如“answerdiv 3”、“answerdiv 4”、“answerdiv 5”等等 使用javascript/jquery,如何在这些动态创建的div中添加id应该是唯一的内容 在我的项目中,用户可以添加“n”个div,没有严格的限制 帮帮我 谢谢你 =========================================================

我在html中有两个名为“answerdiv 1”和“answerdiv 2”的div

现在,我想给出/创建唯一的div id,如“answerdiv 3”、“answerdiv 4”、“answerdiv 5”等等

使用javascript/jquery,如何在这些动态创建的div中添加id应该是唯一的内容

在我的项目中,用户可以添加“n”个div,没有严格的限制

帮帮我

谢谢你

================================================================================

我的HTML代码是:

<div id="answertextdiv">
   <textarea id="answertext" name="answertext" placeholder="Type answer here" rows="2" cols="40" tabindex="6" onBlur="exchangeLabelsanswertxt(this);"></textarea>
</div>

我的JS代码:

function exchangeLabelsanswertxt(element)
{
    var result = $(element).val();
    if(result!="")
    {
        $(element).remove();
        $("#answertextdiv").append("<label id='answertext' onClick='exchangeFieldanswertxt(this);'>"+result+"</label>");
    }
}
function exchangeFieldanswertxt(element)
{
    var result = element.innerHTML; 
    $(element).remove();
    $("#answertextdiv").append("<textarea id='answertext' name='answertext' placeholder='Type answer here' rows='2' cols='40' tabindex='6' onBlur='exchangeLabelsanswertxt(this);'>"+result+"</textarea>");
}
函数交换elabelsanswertxt(元素)
{
var result=$(元素).val();
如果(结果!=“”)
{
$(元素).remove();
$(“#answertextdiv”).append(“+result+”);
}
}
函数exchangeFieldanswertxt(元素)
{
var result=element.innerHTML;
$(元素).remove();
$(“#answertextdiv”).append(“+result+”);
}
现在,从上面的代码中,我想在唯一的“answertextdiv”id中添加所有内容。

您应该在Javascript中保留一个“全局”变量,其中包含创建的div数,每次创建div时,您都会增加该变量。 示例代码:

<script type="text/javascript">
  var divCount = 0;

  function addDiv(parentElement, numberOfDivs) {
    for(var i = 0; i < numberOfDivs; i++) {
      var d = document.createElement("div");
      d.setAttribute("id", "answerdiv"+divCount);
      parentElement.appendChild(d);
      divCount++;
    }
  }
</script>

var divCount=0;
函数addDiv(parentElement,numberOfDivs){
对于(变量i=0;i
请记住,jQuery在Javascript中做很多事情都不是必需的。它只是一个帮助您“少写多做”的库。

您需要一个全局计数器(更一般地说:一个唯一的id生成器)来显式或隐式地生成id(后者,例如,通过选择生成的最后一个div,由类或其id前缀标识)

然后试试看

var newdiv = null; // replace by div-generating code
$(newdiv).attr('id', 'answerdiv' + global_counter++);
$("#parent").append(newdiv); // or wherever 

如果您的div位于以下容器中:

<div id="container">
  <div id="answerdiv 1"></div>
  <div id="answerdiv 2"></div>
</div>

你可以这样做:

//Call this whenever you need a new answerdiv added
var $container = $("container");
$container.append('<div id="answerdiv ' + $container.children().length + 1 + '"></div>');
//需要添加新的应答器时调用此选项
var$container=$(“container”);
$container.append(“”);

如果可能的话,尽量不要使用全局变量……它们最终会咬到你,在这种情况下你并不需要全局变量。

你可以尝试类似的方法来创建具有唯一ID的div

HTML


这是id为1的div
这是id为2的div
JavaScript

var i=2;
function insertDiv(){

    for(i;i<10;i++)
    {
        var d_id = i+1;



        $( "<div id='answerdiv-"+d_id+"'>This is div with id "+d_id+"</div>" ).insertAfter( "#answerdiv-"+i );

    }


}    
var i=2;
函数insertDiv(){
对于(i;i
var newdivcount=0;
函数insertDivs(){
newdivcount=newdivcount+1;
var id=“answerdiv-”+(newdivcount);
var div=document.createElement(“div”);
div.setAttribute(“ID”,ID);
var输入=document.createElement(“TEXTAREA”);
div.appendChild(输入);
document.getElementById('container').appendChild(输入);
}
InsertDivs


我在下面使用了JQuery代码

$("#qnty1").on("input",function(e)
{
var qnt = $(this).val();
for (var i = 0; i < qnt; i++) {
var html = $('<div class="col-lg-6 p0 aemail1"style="margin-bottom:15px;"><input type="text"  onkeyup= anyfun(this)   class="" name="email1'+i+'" id="mail'+i+'"  > </div><div id=" mail'+i+'" class="lft-pa img'+i+' mail'+i+'"  > <img class="" src="img/btn.jpg" alt="Logo" > </div> <div id="emailer1'+i+'" class=" mailid "></div>');

var $html=$(html);
$html.attr('name', 'email'+i);
$('.email1').append($html);
}
}
$(“#qnty1”)。关于(“输入”,函数(e)
{
var qnt=$(this.val();
对于(变量i=0;i
我的HTML包含如下文本框

<input type="text" name="qnty1" id="qnty1"  class=""   >


以下是您可以尝试的另一种方法
//您可以使用动态内容
var dynamicContent=“部门编号”;
//没有你想要的div
var noOfdiv=20;

for(var i=1;我能给我们一些你可能正在使用的HTML示例吗?这可能会给你很多帮助:检查那篇文章:你需要一个类似for循环的循环,然后你的变量计数循环是n(比如div 3 div 4…n=数字)这是一种更好的方法,因为它不使用任何全局变量。即使div不在任何容器中,您也可以向这些div添加一个类,并使用
$(“.myDiv”).size()或
$(.myDiv”).length
var ans=$(“#answertextdiv”).length进行计数;这仅显示了1:(您需要使用.childrent().length)$(“#answertextdiv”)。长度应计算为1,除非您有多个answertextdiv
$(“#answertextdiv”)。查找(“div”)。长度
$(“#answertextdiv”)。子项(“div”)。长度
<input type="text" name="qnty1" id="qnty1"  class=""   >
 <div class="email1">
 </div>