我已经动态创建了span标签并附加到div。现在我想获得它的ID,我选择并删除它。这就像jquery tagit。下面我使用这个,但它不工作。当我点击特定的跨度时,查看id可以获得的信息。如何获得span的id并使其不显示任何动态生成的?
$('span').on('click', function (e){
alert(e.target.Id);
});
我已经动态创建了span标签并附加到div。现在我想获得它的ID,我选择并删除它。这就像jquery tagit。下面我使用这个,但它不工作。当我点击特定的跨度时,查看id可以获得的信息。如何获得span的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
S IN的问题不存在运行代码的时候,所以你最终不会钩住他们的click
事件。
为了解决这个问题,你可能想要做一个委托处理程序:在开发工具中,右键单击这些跨度之一,并找到一个共同的祖先,他们有确实存在作为你的代码运行时的感觉。 (在最坏的情况下,这可能是document
,但通常它更好地范围的东西得更紧了。)然后:
$('selector-for-that-ancestor-element').on('click', 'span', function() {
$(this).remove(); // Removes the one that was clicked
});
详见on
。另外,如果span
有任何识别特征(如class
或某个属性),则可能需要将其包含在上面的委派选择器中以更具体。
我尝试使用该代码通过提供警报也但点击事件不发射。 – Vicky
@Vicky:恩,那将是一个*不同的问题。我已经更新了答案。 –
好吧,其实我已经创建了这个跨度动态使用jQuery ... – Vicky