Javascript/jQuery如何引用创建的元素

Javascript/jQuery如何引用创建的元素,javascript,jquery,Javascript,Jquery,在jQuery中,我一直在使用按钮创建元素,然后引用通过使用此按钮单击的按钮。例如: $(".addphoto").click(function(){ photo_count++; $(this).parent().before("<label>Add Photo: <input type='file' name='photo[" + photo_count + "]'></label>"); }); 问题是它现在指的是文档,

在jQuery中,我一直在使用按钮创建元素,然后引用通过使用此按钮单击的按钮。例如:

$(".addphoto").click(function(){
    photo_count++;
    $(this).parent().before("<label>Add Photo: <input type='file' name='photo[" + photo_count + "]'></label>");
    });    

问题是它现在指的是文档,而不是刚才单击的按钮。如何引用该按钮?

如果为原始按钮提供ID,则可以使用.click函数引用该按钮

HTML

Javascript JQuery

var photo_count = 0;
$('#addPhotoButton').click(function () {
    photo_count++;
    $(this).parent().before("<div><label>Add Photo: <input type='file' name='photo[" + photo_count + "]' id='addPhotoID_"+photo_count+"'></label></div>");
});
jsIDLE URL:

尝试使用.live而不是.click方法

编辑:我将添加一个简短的描述

.live方法为当前和将来与当前选择器匹配的所有元素附加事件处理程序。

传递事件并引用$e.currentTarget,而不是$this


不,这仍然是指单击的按钮。请提供您的htmlplease共享脚本以动态创建按钮
<div class="x">
    <div>
        <button class="addphoto" id="addPhotoButton">addphoto</button>
    </div>
</div>
var photo_count = 0;
$('#addPhotoButton').click(function () {
    photo_count++;
    $(this).parent().before("<div><label>Add Photo: <input type='file' name='photo[" + photo_count + "]' id='addPhotoID_"+photo_count+"'></label></div>");
});
$(document).on("click", ".addphoto", function(e){
    photo_count++;
    $(e.currentTarget).parent().before("<label>Add Photo: <input type='file' name='photo[" + photo_count + "]'></label>");
});