javascript - Polymer querySelector 在 dom-repeat 中找不到元素

标签 javascript jquery jquery-selectors polymer

目标:

我正在尝试在 dom-repeat 元素内选择一个 div。

下面的代码包含我要选择的div。 id="med[[索引]]"

代码:

<div class="card">
    <h1>Medicijn overzicht:</h1>
    <template is="dom-repeat" items="{{employees}}">
        <div class="inner-card" id="[[index]]">
        <div><span><b>{{item.first}}</b></span> <span>{{item.last}}</span>mg<br><span>{{item.stuks}}</span> stuks</div>
        <div id="med[[index]]" style="display:none"><br><br><br><br><br>Goed verhaal</div>
        </div>
    </template>
</div>

问题:

这里的目标是当父级被单击时让 div 展开,但是从 click 函数中调用 querySelect 时似乎无法找到该元素。当使用静态名称在函数顶部执行此搜索时,它发现它很好。

            attached:function(){
            this.async(function() {
                var cards = Polymer.dom(this.root).querySelectorAll(".inner-card");
                var test = Polymer.dom(this.root).querySelector("#med0"); //Finds the element
                console.log(test);  // This is fine
                console.log("cards",cards);
                $(cards).click(function(evt){
                    var target= evt.currentTarget;
                    var tindex = target.id;
                    var targetDiv = Polymer.dom(this.root).querySelector("#med"+tindex); //Doesn't find it.
                    console.log("#med"+tindex)
                    console.log(targetDiv);
                    $(targetDiv).slideDown("slow");
                    console.log("trigger"+tindex);
                });
            });
       }

这可能只是我误解了它是如何工作的,我对此很陌生。

谁能告诉我我在这里做错了什么? 提前致谢。

最佳答案

另一个解决方案是在函数结束后添加 .bind(this) 。我在老项目中使用它,ES6不能使用。使用 .bind(this) 看起来更“干净”

就您而言:

     $(cards).click(function(evt){
            var target= evt.currentTarget;
            var tindex = target.id;
            var targetDiv = Polymer.dom(this.root).querySelector("#med"+tindex); //Doesn't find it.
            console.log("#med"+tindex)
            console.log(targetDiv);
            $(targetDiv).slideDown("slow");
            console.log("trigger"+tindex);
     }.bind(this));

关于javascript - Polymer querySelector 在 dom-repeat 中找不到元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44141972/

相关文章:

jquery - 在输入字段中显示点击的数据

javascript - 更新时无法删除 D3 中的圈子

javascript - 为什么更改我的框的innerHTML 会使我的按钮在Greasemonkey 中停止工作?

javascript - 从第一层选择元素

javascript - HTML 如何删除 FileUpload 字段中的文本?

javascript - :not isn't working

javascript - 我怎样才能得到这个机制?

javascript - 如果您的服务器对自己执行 XHR 会怎样?

javascript - 在 <a> 之前的多个元素之前搜索 <select>

javascript - 将 jQuery 选择保存到变量的行为不同