在指令元素参数中获取HTML标记

时间:2016-10-30 12:42:26

标签: angularjs

In this plunk我有一个用UL元素声明的指令。

{
  "@context": "http://schema.org",
  "@type": "ItemList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "item": {
        "@type": "Recipe",
        "url": "http://example.com/desserts/pies/#apple-pie",
        "name": "Apple Pie",
        "image": "https://example.com/300px-Apple_pie.jpg",
        "author": {
          "@type": "Person",
          "name": "Carol Smith"
        },
        "datePublished": "2009-11-05"
      }
    }
  ]
}

我正在尝试通过分析指令链接函数中的<directive> <ul> <li id="0">xxx 0</li> <li id="1">xxx 1</li> <li id="2">xxx 2</li> </ul> </directive> 参数来检索这些,但我只在innerHTML中获取它们。我需要的是将element元素的id和text作为DOM。有什么想法吗?

li

2 个答案:

答案 0 :(得分:1)

是的,你可以。如果您记录该元素,那么您将看到它是一个类似于对象的数组,您需要先选择数组的键才能获取HTML元素。

.directive('directive', function() {

var directive = {};
directive.restrict = 'AE';
directive.scope = true;
directive.link = function(scope, element, attrs) {
    console.log(element[0].querySelector('ul'));//Element is an array like object
};
return directive;

});

http://plnkr.co/edit/ajLmjxnDJ1JXjkk86aRh?p=preview

答案 1 :(得分:1)

由于你有指令中的元素,你不必使用querySelector,

你可以直接做,

directive.link = function(scope, element, attrs) {
        console.log(element.find("ul")[0].children);
};

<强> DEMO