我正在尝试使用这行HTML“<li id="menu-item-3026">...</li>
”用javascript替换列表项“<li><a href="https://www.facebook.com/"><i class="icon-s-facebook"></i></a></li>
”。
有什么建议吗?
当前
<div class="menu" id="menu">
<ul id="megaUber" class="megaMenu">
<li id="menu-item-3026" class="menu-item menu-item-type-custom menu-item-object-custom ss-nav-menu-item-4 ss-nav-menu-item-depth-0 ss-nav-menu-reg">
<a target="_blank" href="https://www.facebook.com/SocialFactor"><span class="wpmega-link-title">Facebook</span>
</a>
</li>
</ul>
</div>
期望的结果:
<div class="menu" id="menu">
<ul id="megaUber" class="megaMenu">
<li><a href="https://www.facebook.com/SocialFactor"><i class="icon-s-facebook"></i></a>
</li>
</ul>
</div>
答案 0 :(得分:2)
使用jquery:
尝试此操作$("#menu-item-3026")
.html("<a href=\"https://www.facebook.com/\"><i class=\"icon-s-facebook\"></i></a>")
.prop("id", "");
没有jquery:
var el = document.querySelector("#menu-item-3026");
el.innerHTML = "<a href=\"https://www.facebook.com/\"><i class=\"icon-s-facebook\"></i></a>";
el.id = "";
答案 1 :(得分:2)
假设没有jQuery,你有两个基本选项。
首先,使用DOM函数以编程方式创建节点。
第二 - 使用简单的文本字符串进行更新,正如ioums刚刚建议的那样。
function byId(e){return document.getElementById(e);}
function newEl(tag){return document.createElement(tag);}
function newTxt(txt){return document.createTextNode(txt);}
var container = byId('megaUber');
container.innerHTML = '';
var li = newEl('li');
var a = newEl('a');
a.setAttribute('href', "https://www.facebook.com/SocialFactor");
var i = newEl('i');
i.className = "icon-s-facebook";
li.appendChild(a);
a.appendChild(i);
container.appendChild(li);
当然,您也可以一次性完成(无法理解为什么它不能更快地执行)
var container = byId('megeUber');
container.innerHTML = "<li><a href='https://www.facebook.com/SocialFactor'><i class='icon-s-facebook'></i></a></li>";
答案 2 :(得分:1)
您使用的是jQuery吗?如果是这样,您可以执行以下操作:
$('#menu-item-3026').replaceWith('<li><a href="https://www.facebook.com/SocialFactor"><i class="icon-s-facebook"></i></a></li>')
答案 3 :(得分:1)
为什么每个人都立即转到jQuery?只需使用
document.getElementById('megaUber').innerHTML = '<li><a href="https://www.facebook.com/SocialFactor"><i class="icon-s-facebook"></i></a></li>';