从刚刚使用 Jquery 添加的新 HTML 元素获取数据属性
Get Data Attribute from the new HTML Element just added using Jquery
刚刚使用 jquery .html() 在我的 HTML 代码中添加了新元素,但无法从此新元素获取数据属性。
插图:
<div class="row" id="append">
<div class="col-12" id="newElement">
<button>Add new element</button>
</div>
<div class="col-md-3 see-id">
<button data-id="0.901065887770927">Check ID</button>
</div>
</div>
<script>
$(document).ready(function(){
$('.see-id').click(function(){
alert($(this).data('id'));
})
$('#newElement').click(function(){
var rand = Math.random();
$('#newElement').after('<div class="col-md-3 see-id"><button data-id="'+rand+'">Check ID</button></div>');
})
})
</script>
如何从使用 DOM 添加的新元素中获取数据属性?
因为您要向文档添加新的 HTML,所以您需要 use event delegation 才能获取数据。将侦听器附加到父元素,在本例中为 .row
。但是你还需要定位按钮,所以你的选择器应该是 .see-id button
.
注意:我已将 HTML 分开,以便查询可以更好地工作。在 .row
div 中的前一个按钮之前添加了新按钮,这可能会在您单击它们时产生误导性结果。在此示例中,我使用 append
代替。
$(document).ready(function() {
$('.row').on('click', '.see-id button', function () {
const id = $(this).data('id');
console.log(id);
});
$('#newElement').on('click', function () {
const rand = Math.random();
$('.row').append(`<div class="col-md-3 see-id"><button data-id="${rand}">Check ID</button></div>`);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="newElement">
<button>Add new element</button>
</div>
<div class="row"></div>
刚刚使用 jquery .html() 在我的 HTML 代码中添加了新元素,但无法从此新元素获取数据属性。
插图:
<div class="row" id="append">
<div class="col-12" id="newElement">
<button>Add new element</button>
</div>
<div class="col-md-3 see-id">
<button data-id="0.901065887770927">Check ID</button>
</div>
</div>
<script>
$(document).ready(function(){
$('.see-id').click(function(){
alert($(this).data('id'));
})
$('#newElement').click(function(){
var rand = Math.random();
$('#newElement').after('<div class="col-md-3 see-id"><button data-id="'+rand+'">Check ID</button></div>');
})
})
</script>
如何从使用 DOM 添加的新元素中获取数据属性?
因为您要向文档添加新的 HTML,所以您需要 use event delegation 才能获取数据。将侦听器附加到父元素,在本例中为 .row
。但是你还需要定位按钮,所以你的选择器应该是 .see-id button
.
注意:我已将 HTML 分开,以便查询可以更好地工作。在 .row
div 中的前一个按钮之前添加了新按钮,这可能会在您单击它们时产生误导性结果。在此示例中,我使用 append
代替。
$(document).ready(function() {
$('.row').on('click', '.see-id button', function () {
const id = $(this).data('id');
console.log(id);
});
$('#newElement').on('click', function () {
const rand = Math.random();
$('.row').append(`<div class="col-md-3 see-id"><button data-id="${rand}">Check ID</button></div>`);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="newElement">
<button>Add new element</button>
</div>
<div class="row"></div>