我想在JavaScript中使用函数<strong>
myfunc(this)
标记
<strong><a href="#" onclick="myfunc(this)">mylink</a></strong>
我确实想要清理代码,因此只需删除<strong>
代码
答案 0 :(得分: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);
}
}
答案 1 :(得分:2)
直接回答可能是(假设您<a>
元素中只有<strong>
function myfunc(e) {
var oStrong = e.parentNode;
oStrong.parentNode.appendChild(e);
oStrong.parentNode.removeChild(oStrong);
}
但是,我还要指出<strong>
与可能 - 错误地 - 被用作synonim之间的区别:<b>
属性或其表兄,{{1} } css属性。
style.fontWeight = 'bold';
旨在强调重要文本,并且将由盲人的浏览器解释为例如。大胆的方面纯粹是一种风格,不会在lynx下呈现。
所以,如果你想制作一些大胆的东西,请使用上面提到的css样式。然后,只需调用<strong>
答案 2 :(得分: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);
上
答案 3 :(得分:0)
function myfunc(obj) {
if ($(obj).parent().is("strong")) {
$(obj).unwrap();
}
}
答案 4 :(得分:0)
这样的事情应该有效:
function myfunc(elem){
$(elem).parent().html($(elem));
}