dojo在foreach中获取当前节点的父节点

时间:2015-03-16 13:59:15

标签: javascript jquery dojo

在JQuery中,我使用parent()函数来获取任何元素的直接父级。在循环中像这样

  

$(本).parent();

我想在dojo中做同样的循环就是这样。

dojo.query(".entryURL").forEach(function(node, index, arr){
        var url =  dojo.attr(node, "href");
        // I want to get the parent of node, which will be ofcourse diff for each iteration
      });

有人请给我一个提示,我尝试使用parent.node我也试图像这样追加父母

dojo.place("<span style='color:green'>URL</span>",query(node).parent(), "last");

我在firebug中收到此错误

  

TypeError:_365.appendChild不是函数

此致

光顾Aadam

1 个答案:

答案 0 :(得分:0)

这里有一些问题:

  1. dojo.place()dojo/dom-construct::place()不符合dojo/NodeList使用的dojo/query API。而不是使用dojo/NodeList-manipulatedojo/NodeList-dom等模块。由于您是jQuery用户,我建议使用dojo/NodeList-manipulate,因为它模仿了jQuery API。
  2. 要检索DOM节点的父节点,您确实使用parent()方法,但只有在您加载dojo/NodeList-traverse时才能使用该部分API。
  3. 这是一个使用反馈的工作示例:

    require(["dojo/query", "dojo/NodeList-traverse", "dojo/NodeList-manipulate", "dojo/domReady!"], function(query) {
      query(".entryURL").forEach(function(node, index, arr){
        query(node).parent().append("<span style='color:green'>URL</span>");
      });
    });
    

    JSFiddle:http://jsfiddle.net/okk8unj5/