如何在分离的dom上使用querySelectorAll?

时间:2013-10-08 07:41:49

标签: javascript jquery

我需要传递给actionSorter()方法和HTMLCollection,我想知道如何创建一个与DOM分离的临时div。

有什么想法吗?

       var temp = document.createElement('div');
        temp.className = 'temp';
        temp.dataset.href = 'zoomout';
        var coll = document.querySelectorAll('.temp');
        this.actionSorter(coll);



actionSorter: function($el) {

            var href = $el[0].dataset.href;
            if (href === 'viewup') {
                Viewer.itemAnimateUp();
            }
            if (href === 'viewright') {
                Viewer.itemAnimateRight();
            }
            if (href === 'viewdown') {
                Viewer.itemAnimateDown()
            }
            if (href === 'viewleft') {
                Viewer.itemAnimateLeft();
            }
            return false;
        },

2 个答案:

答案 0 :(得分:1)

您不需要执行querySelectorAll,因为您已经拥有该元素。

足够通过temp元素

this.actionSorter(temp);

但是,如果您的元素更复杂并且您想在未附加到DOM的临时元素中找到某些内容,则可以调用该元素的querySelectorAll方法,例如

temp.querySelectorAll(".selector")

请注意querySelectorAll会返回一个元素数组。

更新:根据您的代码...只需将数组作为参数传递

  var temp = document.createElement('div');
  temp.className = 'temp';
  temp.dataset.href = 'zoomout';
  this.actionSorter( [temp] ); // <--- note temp into array

答案 1 :(得分:0)

尝试这样的事情

   var temp = document.createElement('div');
    temp.className = 'temp';
    temp.dataset.href = 'zoomout';
    this.actionSorter(temp);