2012-02-17 48 views
1

好吧我知道jquery可以做到這一點很簡單,但挖掘我有點困惑,我是否應該使用replaceWith,過濾器,html,文本,克隆等!如何獲得jQuery對象,然後操縱其中的DOM元素

這是我正在做的。我正在使用jquery UI選項卡,並且每當我創建一個新選項卡時,我需要使用來自dom上其他位置的html,但在將它用於新選項卡之前稍作修改。所以它看起來像這樣:

_$chatTabs = $("#dvChatManager").tabs({ 
    selected: 0, 
    tabTemplate: "<li><a href='#{href}'>#{label}</a> <span style=\"position:absolute;right:0px;\" class='ui-icon ui-icon-close'>Remove Tab</span></li>", 
    add: function (event, ui){ 
     var html = $('.dvChatBoxWrapper', $('#dvChat-' + _activeGID)).clone(); 
     $(ui.panel).append(html); 
     initTabs(); 
    } 
}); 

因此,在「添加」部分,你可以看到,我克隆另一個DIV並將它添加到面板上。但在將其附加到面板之前,我需要清除變量html中的某些div,並可能更改其他html事物。我對最好的方法感到困惑。此外,我打開另一種方法使用dom上的其他div作爲模板!

+0

這是一個不完整的問題。 '.divChatBoxWrapper'裏面有什麼?根據應用程序,最好有一個緩存的基本元素,每次克隆。 – 2012-02-17 18:58:08

回答

1

首先我建議在$ jquery對象名稱前放一個$符號,所以更容易跟蹤它們。 :)

您可以通過find()訪問當前的jQuery對象元素和操縱它們對你的需要:

var $html = $('.dvChatBoxWrapper', $('#dvChat-' + _activeGID)).clone(); 
$html.find('.someDiv').remove(); 
$html.find('.someOtherDiv').html('new content'); 
..etc.. 
+0

作爲一個性能問題,我們也可以將變量包裝在jquery中,並根據我們的需要使用鏈接和緩存。即 – Vivek 2012-02-17 19:31:33