我已经动态创建了 span 标签并附加到 div。现在我想获取它的 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();
)
回复你的评论:
I tried using that code by giving alert also but the click event is not firing.
这表明当您的代码运行时,所讨论的 span
并不存在,因此您最终不会 Hook 它们的 click
事件。
为了解决这个问题,您可能需要执行委托(delegate)处理程序:在开发工具中,右键单击其中一个跨度并找到它们具有的共同祖先,该祖先在您的时间确实存在代码运行。 (在最坏的情况下,这可能是 document
,但通常情况下最好将事物的范围更紧密一些。)然后:
$('selector-for-that-ancestor-element').on('click', 'span', function() {
$(this).remove(); // Removes the one that was clicked
});
参见 on
了解详情。此外,如果 span
具有任何标识特征(如 class
或某些属性),您可能希望将其包含在上面的委托(delegate)选择器中以更加具体。
关于javascript - 如何获取 span 的 id 并使其不显示动态生成的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33462831/