[英]Returning value of a clicked list item using jQuery
我正在从一些JSON创建项目列表,并且我试图在单击该项目时获取该项目的“数据值”。 到目前为止,我有
var target = $('#list');
target.empty();
for (var i = 0; i < myJson.length; i++) {
$('<tr class = "selectedItem">')
.append($('<td>', {
'text': myJson[i].id,
'data-value':myJson[i].id
}))
.append($('<td>', {
'text': myJson[i].name
}))
.append($('<td>', {
'text': myJson[i].Details
}))
.appendTo(target);
};
生成一个列表并将其显示在屏幕上。 但是,当用户单击这些项目之一时,我正在尝试获取ID。 我添加了“ selectedItem”类,以为我可以执行一次单击事件,但没有这种运气。 这是我所拥有的:
$('body').on('click', ".selectedItem", function () {
var value = $(this).data('value');
console.log(value);
});
但我只是不断变得“不确定”。 我在做什么错的任何想法? 谢谢
您的事件在tr
,因此$(this)
是tr
。
尝试在td
上添加class selectedItem
;)
var target = $('#list');
target.empty();
for (var i = 0; i < myJson.length; i++) {
$('<tr>')
.append($('<td class = "selectedItem">', {
'text': myJson[i].id,
'data-value':myJson[i].id
}))
.append($('<td>', {
'text': myJson[i].name
}))
.append($('<td>', {
'text': myJson[i].Details
}))
.appendTo(target);
};
如果将类保留在tr上,则还可以检索第一个td:
var value = $(this).children().first().data('value');
data-value
位于第一个表格单元格上,而您定位的类位于行上。 在这种情况下,您可以在click事件中获得具有data-value
的<td>
:
$('body').on('click', ".selectedItem", function () {
var value = $(this).children('[data-value]').data('value');
console.log(value);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.