【问题标题】:how to get jquery object, then manipulate the dom elements inside it如何获取 jquery 对象,然后操作其中的 dom 元素
【发布时间】:2012-02-17 18:54:37
【问题描述】:

好吧,我知道 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 作为模板的方法!

【问题讨论】:

  • 这是一个不完整的问题。 .divChatBoxWrapper 里面有什么?根据应用程序的不同,最好有一个缓存的基本元素,每次都克隆它。

标签: jquery


【解决方案1】:

首先,我建议在 jquery 对象名称前放一个 $ 符号,这样更容易跟踪它们。 :)

您可以通过find() 访问当前 jquery 对象中的元素,并根据需要对其进行操作:

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

【讨论】:

  • 作为性能问题,我们还可以将变量包装在jquery中,并根据需要使用链接和缓存。即
猜你喜欢
  • 2015-08-03
  • 2018-12-17
  • 2011-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-05
  • 2011-06-23
  • 1970-01-01
相关资源
最近更新 更多