在javascript中使用document.getElementsByClassname递归下降我的DOM效率是否低效?

时间:2017-06-23 13:25:39

标签: javascript jquery dom

我现在正在javascript中以递归方式递归我的DOM,寻找特定的(自定义)属性。这很有用,但我很好奇这是否与JavaScript / JQuery中的内置查询功能相比效率低。

function createTooltipsRecurse(elem) {
  if (!elem.getAttribute) return;
  if (elem.getAttribute('tooltip')) {
    $(elem).hover(
      function (event) {
        $('#tt').html(elem.getAttribute('tooltip'));
        $('#tt').css('left',(event.pageX + 10) + 'px');
        $('#tt').css('top',event.pageY + 'px');
        $('#tt').show();
      },
      function (event) {
        $('#tt').hide();
      });
  }
  for (var i = 0; i < elem.childNodes.length; i++) {
    createTooltipsRecurse(elem.childNodes[i]);
  }
}

谢谢!

1 个答案:

答案 0 :(得分:3)

现在这完全是原生的(因此更快),并且使用非常方便的JQuery / CSS选择器:

document.querySelectorAll('*[your-attribute]');

这将返回带有your-attribute的节点列表。

希望这有帮助!