如何找到具有数据属性的标签

How to find a tag which has a data attribute

我正在尝试查找具有 data-direction 属性的标签。不知何故,它总是未定义的。我想要做的是获取 data-directiondata-cellId 的值。 有什么想法吗?

var row = $('<tr data-cellId="' + cell.fatherId + '" data-direction="' + cell.direction + '"/>');
var nameColumn = $('<td class="port-name-col" data-cellId="' + cell.fatherId + '">' +cell.value.name + '</td>');
var btnColumn = $('<td class="port-btn-col"><button type="button" title="Remove" class="btn btn-default btn-xs x-button-icon btn-delete-port"><span class="glyphicon glyphicon-trash"></span></button></td>');
row.append(nameColumn);
row.append(btnColumn);

事件监听器

$(document).off('click', '.btn-delete-port').on('click', '.btn-delete-port', function (event) {
    var elem = event.target || event.srcElement;
    //find tr element that has cellID attribute
    var tr = $(elem).find("tr.data-cellId");
    alert($(elem).parent().parent().html())
});

问题出在这一行:

var tr = $(elem).find("tr.data-cellId");

.data-cellId 部分根据具有 class 的元素进行选择。要查找属性,请在选择器中使用 [data-cellId]

var tr = $(elem).find("tr[data-cellId]");

然后要获取该属性的值,您可以使用:

tr.attr('data-cellId');