javascript - 是否有与 MooTools 的 Element() 构造函数等效的 jQuery?

标签 javascript jquery mootools

我将为我的网站启动一个 javascript 报告引擎,并已开始使用 MooTools 进行一些原型(prototype)设计。我真的很喜欢能够做这样的事情:

function showLeagues(leagues) {
    var leagueList = $("leagues");
    leagueList.empty();
    for(var i = 0; i<leagues.length; ++i) {
        var listItem = getLeagueListElement(leagues[i]);
        leagueList.adopt(listItem);
    }
}

function getLeagueListElement(league) {
    var listItem = new Element('li');
    var newElement = new Element('a', {
        'html': league.name,
        'href': '?league='+league.key,
        'events': {
                'click': function() { showLeague(league); return false; }
        }
    });
    listItem.adopt(newElement);
    return listItem;
}

据我所知,jQuery 的“采用”类型方法仅采用 html 字符串或 DOM 元素。是否有任何 jQuery 等同于 MooTools 的 Element


编辑:我在这里寻找的最重要的是我的点击事件到链接的编程附件。

最佳答案

从语法上讲,使用 jQuery 可能更好,但使用起来可能更高效

  document.createElement('li')

并且至少不需要字符串比较测试和次要标记解析。

flydom如果您坚持生成大量 dom 节点,也可能会引起您的兴趣。 (理论上应该更快,但是没测试过)


注意:在内部,jQuery("") 看起来很有效(过于简单):

jQuery(matcher) --> function(matcher)
{
   return jQuery.fn.init(matcher) --> function(matcher)
   {
      return  this.setArray(
        jQuery.makeArray(
           jQuery.clean(matcher) --> function(matcher)
           { 
               div = document.createElement('div');
               div.innerHTML = matcher;
               return div.childNodes;
           }
        )
      );
   }
}

所以人们会假设“document.createElement”因此是一项“要求”,如果您知道您想要什么(即:不对某些第 3 方数据进行 parising使用 $( datahere ) ) 然后 document.createElement 将恕我直言是合乎逻辑的,并且速度提升可以避免大量的正则表达式和缓慢的字符串操作。

比较:jQuery(document.createElement('div')) 看起来它有效地做到了这一点(过于简单化):

jQuery(matcher) --> function(matcher)
{
   return jQuery.fn.init(matcher) --> function(matcher)
   {
       this[0] = matcher; 
       this.length = 1; 
       return this; 
   }
}

关于javascript - 是否有与 MooTools 的 Element() 构造函数等效的 jQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/176545/

相关文章:

javascript - 选中下拉选项上的复选框

javascript - Jqplot - 荧光笔显示工具提示,其中包含来自多个 y 轴的数据

javascript - mootools 是否提供了一种方法来 fade() 除了一个元素之外的所有元素?

javascript - 如何将 div 锁定(卡住)到 jquery 应用程序中?

javascript - 使用 JavaScript 确定元素的宽度是固定宽度还是百分比宽度

使用 AJAX 打开页面时 Javascript slider 不工作

javascript - 在下一个 js react 项目中添加 favicon

javascript - 如何在以声明方式创建自定义 Dojo 小部件后检索它们

javascript - 在特定国家/地区创建随机闪烁点

javascript - 有没有办法用ajax获取无限网页?