2011-01-21 168 views
1

这里是我的菜单代码: -我如何使用jQuery replaceWith正确

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

但它不起作用

这个替换的正确代码是什么?

回答

2

我看到的差异只是<ul class="something">的类别。

难道你只是addClass()它吗?

$('.menu ul').addClass('something'); 
+0

感谢Reigel。现在它工作了。 http://jsfiddle.net/aeyva/ – wow 2011-01-21 02:05:40

1

当您使用直线html代码创建jquery对象时,它找不到该页面上该代码的匹配项;相反,它创建一个基于该html的新元素并将其包装在一个jquery对象中。因此,您可以将其替换为您喜欢的一切,并且不会影响您的页面。

你需要先找到使用jQuery选择($("div.menu ul"))页面上的元素,然后做一些事情吧:

$("div.menu ul").addClass("something"); 
0

您可以使用它:

$("ul").replaceWith("<ul class='something'><li><a href='http://domain.com/'>Home</a></li></ul>"); 

它工作正常。 。 也许属性的值必须用单引号和句法开始和结尾用双引号分隔。