如何在 jQuery 中获取动态生成元素的分配 ID?
How to get assigned-id of a dynamically generated element in jQuery?
我在部分视图中从以下代码动态生成了 div。
$('#album').click(function (e) {
var l = window.location;
var base_url = l.protocol + "//" + l.host;
e.preventDefault();
$.ajax({
type: "POST",
url: base_url + '/CreateAlbum/DisplayAlbum',
success: function (data) {
$.each(data, function (index, el) {
console.log(el);
for (i = 0; i < el.length; i++) {
div = $('<div class="albumclass" />');
**img = $('<img src="/Content/images/fold.jpg" width=150 height=150 assigned-id ='+el[i]["ID"]+'/>').prependTo(div);**
lbl = $('<label/>').text(el[i]["title"]).appendTo(div);
div.appendTo('.album_inner');
}
});
},
error: function (jqXHR, textStatus, errorThrown) {
alert("Error");
}
});
});
我需要在 jquery.I 中捕获当前双击图像的 'assigned-id' 的值尝试了以下代码但结果 'undefined'
$('.album').on('dblclick', '.albumclass img', function (e) {
$("#albumId").val($(this).data('assigned-id'));
});
有人帮忙
assigned-id
是属性而不是元素的 属性。您需要使用 .attr('assigned-id')
:
$('.album_inner').on('dblclick', '.albumclass img', function (e) {
$("#albumId").val($(this).attr('assigned-id'));
});
注意:您应该使用 .data-* 属性(在 HTML5 中添加)来添加自定义属性,因为添加您自己的属性会破坏元素验证并使 html 无效(请参阅 ).
<div class="albumclass">
<img src="/Content/images/fold.jpg" width="150" height="150" data-assigned-id="9/">
<label>15Sep2015</label>
</div>
然后使用.data()
获取与之关联的设定值:
$('.album_inner').on('dblclick', '.albumclass img', function (e) {
$("#albumId").val($(this).data('assigned-id'));
});
我建议您使用 data-*
前缀自定义属性
<div class="albumclass">
<img src="/Content/images/fold.jpg" width="150" height="150" data-assigned-id="9/">
<label>15Sep2015</label>
</div>
然后就可以使用data()
来获取了。
$('.album').on('dblclick', '.albumclass img', function (e) {
$("#albumId").val($(this).data('assigned-id'));
//As per current implementation use
//$("#albumId").val($(this).attr('assigned-id'));
});
我在部分视图中从以下代码动态生成了 div。
$('#album').click(function (e) {
var l = window.location;
var base_url = l.protocol + "//" + l.host;
e.preventDefault();
$.ajax({
type: "POST",
url: base_url + '/CreateAlbum/DisplayAlbum',
success: function (data) {
$.each(data, function (index, el) {
console.log(el);
for (i = 0; i < el.length; i++) {
div = $('<div class="albumclass" />');
**img = $('<img src="/Content/images/fold.jpg" width=150 height=150 assigned-id ='+el[i]["ID"]+'/>').prependTo(div);**
lbl = $('<label/>').text(el[i]["title"]).appendTo(div);
div.appendTo('.album_inner');
}
});
},
error: function (jqXHR, textStatus, errorThrown) {
alert("Error");
}
});
});
我需要在 jquery.I 中捕获当前双击图像的 'assigned-id' 的值尝试了以下代码但结果 'undefined'
$('.album').on('dblclick', '.albumclass img', function (e) {
$("#albumId").val($(this).data('assigned-id'));
});
有人帮忙
assigned-id
是属性而不是元素的 属性。您需要使用 .attr('assigned-id')
:
$('.album_inner').on('dblclick', '.albumclass img', function (e) {
$("#albumId").val($(this).attr('assigned-id'));
});
注意:您应该使用 .data-* 属性(在 HTML5 中添加)来添加自定义属性,因为添加您自己的属性会破坏元素验证并使 html 无效(请参阅 ).
<div class="albumclass">
<img src="/Content/images/fold.jpg" width="150" height="150" data-assigned-id="9/">
<label>15Sep2015</label>
</div>
然后使用.data()
获取与之关联的设定值:
$('.album_inner').on('dblclick', '.albumclass img', function (e) {
$("#albumId").val($(this).data('assigned-id'));
});
我建议您使用 data-*
前缀自定义属性
<div class="albumclass">
<img src="/Content/images/fold.jpg" width="150" height="150" data-assigned-id="9/">
<label>15Sep2015</label>
</div>
然后就可以使用data()
来获取了。
$('.album').on('dblclick', '.albumclass img', function (e) {
$("#albumId").val($(this).data('assigned-id'));
//As per current implementation use
//$("#albumId").val($(this).attr('assigned-id'));
});