【问题标题】:How can I get id of span and make it display none which is dynamically generated?如何获取 span 的 id 并使其不显示动态生成的内容?
【发布时间】:2015-11-01 13:49:46
【问题描述】:

我已经动态创建了 span 标签并附加到 div。现在我想获取它的 id,我选择并删除它的那个。它类似于 jquery tagit。下面我正在使用它,但它不起作用。查看当我单击特定跨度时可以获得的 id。

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

【问题讨论】:

    标签: javascript jquery css asp.net tags


    【解决方案1】:

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

    所以

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

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


    你的评论:

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

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

    要解决这个问题,您可能想要做一个委托处理程序:在开发工具中,右键单击其中一个跨度并找到他们拥有的共同祖先 确实 在您的代码运行。 (在最坏的情况下,这可能是document,但通常情况下最好更严格地确定范围。)然后:

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

    详情请参阅on。此外,如果 spans 具有任何识别特征(如 class 或某些属性),您可能希望将其包含在上面的委托选择器中以更具体。

    【讨论】:

    • 我也尝试通过发出警报来使用该代码,但点击事件没有触发。
    • @Vicky:嗯,那将是一个不同的问题。我已经更新了答案。
    • @Vicky:好吧,事件委托不管是谁创建的都有效。
    • 我用过它,它正在工作。谢谢... $(document).on('click','.delete_button',function(){ // 代码在这里 });
    猜你喜欢
    • 2023-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-09
    • 2021-12-20
    • 1970-01-01
    • 2019-08-06
    相关资源
    最近更新 更多