2011-01-21 212 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>"); 

它工作正常。 。 也許屬性的值必須用單引號和句法開始和結尾用雙引號分隔。