2011-06-07 30 views
1

我在側邊欄中有一個標籤雲小部件,我的側邊欄中也有一個搜索框。我想要將搜索框移到窗口小部件標籤雲中的<h3>下面,以便它顯示在實際的標籤之前。使用jQuery更改列表項的位置

這是我試過的jquery。我想在前面加上類tagcloud之前的搜索框(其中有實際的標籤。

$(document).ready(function() {$('.tagcloud').prepend($('search')); }) 

你能向我解釋爲什麼它不工作?(請注意,我有我的文檔中的一些其他的jQuery函數改變這一點。也許他們干擾標籤雲?我在底部)

此複製他們是tagcloud HTML

<li class="widget widget_tag_cloud" id="tag_cloud-3"> 
    <h3>My Stupid Blog</h3> 

    <div class=tagcloud"> 
    {irrelevant tag links } 

    </div> 

我也有一個搜索框

<li class="widget thesis_widget_search" id="search"> 
    {search html} 
</li> 
0123在我的文檔個

其他jQuery函數

$(function() { 
    $('a[class^="tag-link"]').css('fontSize', '1.3em'); 
    $('a[class^="tag-link"]:odd').css('color', '#A1422F'); 
    $('a[class^="tag-link"]:even').css('color', '#1E2582'); 
}); 


$(function() { 
    $('#s').val('search box'); 
}); 
+0

出於好奇,是否有一個原因,你不只是改變HTML的輸出方式? – StriplingWarrior 2011-06-07 20:40:48

+0

是的,它被設置在單獨的Wordpress小部件中。 – Leahcim 2011-06-07 21:14:49

回答

2

這可以爲你工作。

$(function() { 
    var searchHtml = $("#search").html(); 
    $("#search").remove(); 
    $(".tagcloud").before(searchHtml); 
}); 

獎勵:

對於一些額外的信息,你的 「其他jQuery函數」 應該改變。你真的應該刪除$(function()電話。你應該只在頁面上使用它一次。這個函數調用實際上只是document.ready監視。

$(function() { 
    var searchHtml = $("#search").html(); 
    $("#search").remove(); 
    $(".tagcloud").before(searchHtml); 

    $('a[class^="tag-link"]').css('fontSize', '1.3em'); 
    $('a[class^="tag-link"]:odd').css('color', '#A1422F'); 
    $('a[class^="tag-link"]:even').css('color', '#1E2582'); 

    // Not sure what this is, unless you have an element with id="s" 
    $('#s').val('search box'); 
}); 
1

嘗試這樣:

$(function() { 
    $("#search").remove().insertBefore("#tag_cloud-3"); 
}); 
+0

雖然這不是一個移動html的不好方法,但是您會嘗試將'li'插入到'li'中。你不能嵌套'li'元素。 – 2011-06-07 20:37:35

+0

調用'.remove()'不是必需的。 – StriplingWarrior 2011-06-07 20:38:30

+0

@Jeremy:哎呀,我沒有真正看過標籤名稱...... – icktoofay 2011-06-07 20:38:49