我如何正确使用jQuery replaceWith

时间:2011-01-21 01:37:59

标签: jquery html

这是我的菜单代码: -

<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>');

但它不起作用

此次更换的正确代码是什么?

3 个答案:

答案 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>");

它正常工作.. 也许属性值必须用单引号分隔,语法以双引号开头和结尾。