如何获取span的id并使其不显示动态生成的id

How can I get id of span and make it display none which is dynamically generated?

本文关键字:id 显示 动态 获取 span 何获取      更新时间:2023-09-26

我已经动态创建了span标记,并将其附加到div。现在我想获取它的id,即我选择并删除它的id。它有点像jquery tagit。下面我正在使用这个,但它不起作用。查看单击特定跨度时可以获得的id。

$('span').on('click', function (e){
alert(e.target.Id);
});

您不需要id(而span很可能没有),您已经有了对元素的引用:this。这是标准的jQuery行为。(事实上,它是在没有jQuery的情况下连接事件的各种方法的标准。)

所以

$('span').on('click', function() {
    $(this).remove(); // Removes the one that was clicked
});

(或者,是的,将e添加回并使用e.target:$(e.target).remove();


回复您的评论:

我尝试通过发出警报来使用该代码,但点击事件没有启动。

这表明,当您的代码运行时,有问题的span不存在,因此您最终不会挂接它们的click事件。

为了解决这个问题,您可能需要执行一个委托处理程序:在开发工具中,右键单击其中一个跨度,然后找到它们的共同祖先,在代码运行时确实存在。(在最坏的情况下,可能是document,但通常情况下,最好更紧密地确定范围。)然后:

$('selector-for-that-ancestor-element').on('click', 'span', function() {
    $(this).remove(); // Removes the one that was clicked
});

详见on。此外,如果span具有任何标识特征(如class或某些属性),您可能希望将其包含在上面的委派选择器中,以便更具体。