这是我的菜单代码: -
<div class="menu">
<ul>
<li><a href="http://domain.com/">Home</a></li>
</ul>
</div>
我想用.replaceWith
替换它: -
<div class="menu">
<ul class="something">
<li><a href="http://domain.com/">Home</a></li>
</ul>
</div>
我试过这样的事情: -
$('<div class="menu"><ul>').replaceWith('<div class="menu"><ul class="something">' + $(this).text() + '</ul></div>');
但它不起作用
此次更换的正确代码是什么?
答案 0 :(得分:2)
我看到的差异只是<ul class="something">
的等级。
你不能只是addClass()
吗?
$('.menu ul').addClass('something');
答案 1 :(得分:1)
使用直接html代码创建jquery对象时,它在页面上找不到该代码的匹配项;相反,它基于该html创建一个新元素并将其包装在jquery对象中。因此,您可以随意更换它,它不会影响您的页面。
您需要先使用jquery选择器($("div.menu ul")
)在页面上找到该元素,然后对其执行某些操作:
$("div.menu ul").addClass("something");
答案 2 :(得分:1)
你可以使用它:
$("ul").replaceWith("<ul class='something'><li><a href='http://domain.com/'>Home</a></li></ul>");
它正常工作.. 也许属性值必须用单引号分隔,语法以双引号开头和结尾。