如何删除span onclick或on modify?

时间:2012-02-28 05:45:00

标签: javascript css html

如何编写JS函数来删除单击时的跨度并保留内部文本?

    ​<span class="test" onclick="removespan(this);">Data in red</span>
​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
    ​removespan = function(e)​{
                            alert(e.innerText);
                            }​
    CSS : ​span.test{color:red;}

onclick我想删除跨度并保留内部文本。 事实上,我希望有一个onmodify事件...删除跨度。 目的是在WYSIWYG编辑器中删除拼写检查器span类。

3 个答案:

答案 0 :(得分:3)

如果span是其父节点中唯一的子元素

<div>
    <span class="test" onclick="removespan(this);">Data in red</span>
</div>


removespan = function(span) {
    span.parentNode.innerHTML = span.innerHTML;
}

否则使用此功能

removespan = function(span) {
    span.parentNode.replaceChild(document.createTextNode(span.innerHTML), span);
}

答案 1 :(得分:1)

如果有人对二极管的第二个选项的“扩展”版本感兴趣:

function removespan(span) {
    // Get the text contents of the clicked span
    var span_contents = span.innerHTML;
    // Get the parent node of the clicked span
    var span_parent = span.parentNode;
    // Create a new text node in the DOM to hold the text contents
    var text_node = document.createTextNode(span.innerHTML);
    // Replace the clicked span node with your newly created text node
    span_parent.replaceChild(text_node, span);

    // Alternatively, do the above in one line...
    // span.parentNode.replaceChild(document.createTextNode(span.innerHTML), span);
}

答案 2 :(得分:0)

<span id="test"></span>

y=doc.getElementsById("test");

y.getParent().removeChild(y);