2017-10-15 98 views
0

我需要使用jQuery访问动态创建的元素。我的HTML代码如下:使用jQuery访问动态创建的元素

<div class="row" id="divRowBtnAdd"> 
    <div class="form-group col-md-5" id="divBtnAddRow"> 
     <button type="button" class="btn btn-info btn-xs" id="btnAddRow"> 
     Click for another radius and diameter line 
     </button> 
    </div> 
</div> 

该元件是使用jQuery。之前()函数创建:

$("#btnAddRow").click(function() { 
$("#divRowBtnAdd").before('<div class="row" id="radiusDiameter">' + 
'<div class="form-group col-md-2">' + 
' <label for="radius">Radius</label>' + 
' <input type="number" class="form-control" step="0.1" id="radius" placeholder="Radius">' + 
'</div>' + 
'<div class="form-group col-md-2">' + 
' <label for="diameter">Diameter</label>' + 
' <input type="number" class="form-control" step="0.1" id="diameter" placeholder="Diameter">' + 
'</div>' + 
'<div class="form-group col-md-4">' + 
' <br/> <input type="button" class="btn btn-danger" value="Delete line" id="btnCloseDivCurva"/>' + 
'</div>' + 
'</div>') 
}); 

的元件被成功创建,但是当我运行:

var count = $("#radiusDiameter").length; 

返回的值始终为1,而不是创建的元素的值+1 ...

+0

您需要提升范围并利用活动委派。 –

+0

[动态创建的元素上的事件绑定?]的可能重复?(https://stackoverflow.com/questions/203198/event-binding-on-dynamically-created-elements) –

回答

1

您不能拥有不止一个元素与id相同。相反,附加一个radiusDiameter类,然后使用这样的选择器。

var count = $(".radiusDiameter").length; 
+0

这解决了我的问题,非常感谢!我有没有能够使用相同的ID的概念,但不知道当在课堂上使用该值时,结果将是预期的,谢谢! –