【问题标题】:Delete entire tag?删除整个标签?
【发布时间】:2013-06-26 08:46:21
【问题描述】:

多年来,我一直在努力解决这个问题。

我有一个输入文本区域(div 内容可编辑字段),我在其中输入了一些文本。

然后我有一个“标记”按钮。按下此按钮后,内容可编辑中的文本将不可编辑,并且文本字符串中的每个单词都被放入单词标签中。我现在能做的就是这个。单击文本的任何单词。然后它将一个 id 添加到使单词(或单词)变为红色的跨度。

我还有一个“编辑”文本按钮。如果我按下此键,则会删除干净的标签,只留下带有 id 的标签。

所以现在可以再次编辑 tge 内容可编辑字段,显示一些已单击的单词(它们已被读取)。如果用户光标在跨度前面,我想要做的是删除整个单词,或者尝试删除跨度容器之间的“单词”。因为如果我删除“单词”,容器仍然处于活动状态。所以如果我输入一些东西,它会是红色的:(

如果尝试删除其内容,有什么方法可以强制删除整个 span 标签?

【问题讨论】:

  • 提供一些代码或更好的 jsfiddle
  • .remove 但我需要知道 span 标签之间的“单词”何时变为空?
  • 你好老兄。因此,如果“dude”被删除,span id=1 标签将被删除。如果我在按下退格键后又删除一个字母并且跨度为空,则会执行此操作。因此,如果删除了 dude 文本,我想删除“dude”周围的跨度. 不必再按退格键。

标签: jquery


【解决方案1】:

根据您最近的通讯:

HTML

<span id=1>dude</span>

JS

$('#id').change(function(){
    if($(this).text()==="")$(this).remove();
    //if you want to extract from the tags
    //$(this).after($(this).text()).remove();
    //or more directly 
    //$(this).contents().unwrap();
});

【讨论】:

    【解决方案2】:

    http://api.jquery.com/remove/ 选择 dom 元素,然后调用 remove 方法。

    【讨论】:

    • 是的。我知道如何删除具有特定 id 的 span 标签。但不是如何检查跨度标签何时为空?使用 keydown=backspace 可以,但如果用户选择整个单词并点击删除它不会触发。
    • .html() 获取内部html
    • 如果光标位于跨度标记前面并且按下退格键,是否有办法强制删除整个跨度?然后我可以使跨度不可编辑?或者将它们转换成图像?这样整个图片文本都会被删除?
    • 好的。你知道如何在 div contenteditable=true 中创建不可编辑的标签吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    • 2019-12-21
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    • 2020-01-05
    相关资源
    最近更新 更多