好的,我知道jquery可以很简单地做到这一点,但是我在使用replaceWith,过滤器,HTML,文本,克隆等方面有点困惑!
这就是我正在做的事情。我正在使用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 :(得分:1)
首先,我建议在jquery对象名称前加上一个$符号,这样就可以更容易地跟踪它们。 :)
您可以通过find()访问当前jquery对象中的元素,并根据需要对其进行操作:
var $html = $('.dvChatBoxWrapper', $('#dvChat-' + _activeGID)).clone();
$html.find('.someDiv').remove();
$html.find('.someOtherDiv').html('new content');
..etc..