如何检查父元素是否包含某个标记? - 聚合物

时间:2017-07-25 07:50:06

标签: javascript html polymer

我将代码分成不同的文件(简化版):

管理-page.html中

<paper-tabs selected={{selected}} attr-for-selecton="name">
    <paper-tab name="User">User</paper-tab>
    ...
    ...
</paper-tabs>
<iron-pages selected={{selected}} attr-for-selection="name">
    <admin-user-page name="User"></admin-user-page>
    ...
    ...
</iron-pages>

管理用户-page.html中

<!-- general page content... -->

// Javascript
//--------------
// here I want to have an if statement for whether the parent (user-page.html) 
// contains the <paper-tabs> tag.

请记住我正在使用PolymerJS解决方案,是否有任何方法可以检测 admin-page.html 中是否存在paper-tabs admin-user-page.html 文件?

1 个答案:

答案 0 :(得分:2)

那么,在您的子组件(admin-user-page)中,您可以使用 this.parentNode 来访问您的父组件(admin-page),然后检查是否有paper-tabs标签。所以它看起来像这样:

Polymer('admin-user-page', {
  ready: function(){
     // you have to use parentNode twice
     // this.parentNode is the iron-pages
     // this.parentNode.parentNode is the admin-page
     if( this.parentNode.parentNode.querySelector('paper-tabs') ){
       // paper-tabs tag exists in parent
     }
  }
});

虽然这不是一个优雅的解决方案。但我希望能回答你的问题。