2
4

5 回答 5

2

这应该正是这样做的:

function myfunc(node)
{
    node.parentNode.parentNode.replaceChild(node, node.parentNode);
}

问题是它只能运行一次,所以你需要额外的检查:

function myfunc(node)
{
    var parent = node.parentNode;

    if (parent.nodeName === 'STRONG') {
        parent.parentNode.replaceChild(node, parent);
    }
}

演示

于 2013-05-08T15:28:11.967 回答
2

直接的答案可能是(假设你只有<a>内部<strong>元素)

function myfunc(e) {
    var oStrong = e.parentNode;
    oStrong.parentNode.appendChild(e);
    oStrong.parentNode.removeChild(oStrong);
}

但是,我还想指出两者之间的区别<strong>以及哪些可能(错误地)用作同义词:<b>属性或其表亲,style.fontWeight = 'bold';css 属性。

<strong>是为了强调一个重要的文本,例如盲人的浏览器会这样解释。粗体方面纯粹是一种风格,不会在 lynx 下渲染。

所以,如果你想让一些东西变得大胆,请改用上面提到的 css 样式。然后,您只需调用即可轻松删除此样式.style.fontWeight = 'normal';

于 2013-05-08T15:33:31.903 回答
1

这也是一个可能的解决方案,它将考虑也是strong.

HTML

<div>
    <strong>saker <a id="link1" href="#">mylink</a> ting</strong>
</div>

Javascript

function myFunc() {
    this.removeEventListener("click", myFunc);

    var copyNodeList = [],
        parent = this.parentNode,
        grandParent = parent.parentNode;

    while (parent.firstChild) {
        copyNodeList.push(parent.removeChild(parent.firstChild));
    }

    grandParent.removeChild(parent);

    copyNodeList.forEach(function (node) {
        grandParent.appendChild(node);
    });
}

document.getElementById("link1").addEventListener("click", myFunc, false);

jsfiddle 上

于 2013-05-08T15:43:19.683 回答
0
function myfunc(obj) {
    if ($(obj).parent().is("strong")) {
        $(obj).unwrap();
    }
}
于 2013-05-08T15:30:26.050 回答
0

像这样的东西应该工作:

function myfunc(elem){ 
          $(elem).parent().html($(elem)); 
} 
于 2013-05-08T15:31:51.763 回答