2015-11-01 29 views
1

我已经动态创建了span标签并附加到div。现在我想获得它的ID,我选择并删除它。这就像jquery tagit。下面我使用这个,但它不工作。当我点击特定的跨度时,查看id可以获得的信息。如何获得span的id并使其不显示任何动态生成的?

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

回答

3

你并不需要一个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或某个属性),则可能需要将其包含在上面的委派选择器中以更具体。

+0

我尝试使用该代码通过提供警报也但点击事件不发射。 – Vicky

+0

@Vicky:恩,那将是一个*不同的问题。我已经更新了答案。 –

+0

好吧,其实我已经创建了这个跨度动态使用jQuery ... – Vicky

相关问题