Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从jquery中访问动态html对象id_Javascript_Jquery_Html_Angularjs - Fatal编程技术网

Javascript 从jquery中访问动态html对象id

Javascript 从jquery中访问动态html对象id,javascript,jquery,html,angularjs,Javascript,Jquery,Html,Angularjs,在我有棱角的书页上,我有三个手风琴。每个都加载一个组件视图,其中包含一个danymic生成的表。这意味着,整页上有表一、表二和表三。每个表上面都有一个JQuery部件,用于访问该表。实际上,我是通过css类(例如table.scrollingtable)来查找表的 这对第一个表很好,因为代码只能在第页上找到第一个表(但我有三个不同的表)。 每个表都有一个名为dataTable{{{$ctrl.entry.id}}的动态id。 现在我想通过JQuery调用访问这个id。 如何在组件内部的JQuer

在我有棱角的书页上,我有三个手风琴。每个都加载一个组件视图,其中包含一个danymic生成的表。这意味着,整页上有表一、表二和表三。每个表上面都有一个JQuery部件,用于访问该表。实际上,我是通过css类(例如table.scrollingtable)来查找表的

这对第一个表很好,因为代码只能在第页上找到第一个表(但我有三个不同的表)。 每个表都有一个名为
dataTable{{{$ctrl.entry.id}}
的动态id。 现在我想通过JQuery调用访问这个id。 如何在组件内部的JQuery表中应用danymic id

角度组件视图

<table id="dataTable_{{$ctrl.entry.id}}" class="table scrolling-table">
    <tr>...</tr>
</table>
<script>
    bodyColumnWidth(){
        var $table = $('table.scrolling-table'); // this is actually
        var $table = $('#dataTable_' + entry.id); // i need something like this
    }

    headColumnWidth(){
        var $table = $('table.scrolling-table'); // this is actually
        var $table = $('#dataTable_' + entry.id); // i need something like this
    }

    $(function() {
        bodyColumnWidth();
        headColumnWidth();
    });

    $(window).resize(function() {
        bodyColumnWidth();
        headColumnWidth();
    }).resize();
</script>

...
bodyColumnWidth(){
var$table=$('table.scrolling table');//这实际上是
var$table=$('#dataTable'+entry.id);//我需要这样的东西
}
头柱宽度(){
var$table=$('table.scrolling table');//这实际上是
var$table=$('#dataTable'+entry.id);//我需要这样的东西
}
$(函数(){
bodyColumnWidth();
头柱宽度();
});
$(窗口)。调整大小(函数(){
bodyColumnWidth();
头柱宽度();
}).resize();

您可以创建一个作为属性绑定的angular指令,并在该指令中执行jQuery代码

angular.module('myApp').directive('jqStuff', function() {
    return {        
        restrict: 'A',
        link: function (scope, element, attr) {
            // add jQuery stuff here
            // you can get the id of the element like this
            console.log(attr.id);
        }
    }
});
不要忘记将指令绑定到表:

<table id="dataTable_{{$ctrl.entry.id}}" class="table scrolling-table" jq-stuff>
...
</table>

...

您可以创建一个作为属性绑定的angular指令,并在该指令中执行jQuery代码

angular.module('myApp').directive('jqStuff', function() {
    return {        
        restrict: 'A',
        link: function (scope, element, attr) {
            // add jQuery stuff here
            // you can get the id of the element like this
            console.log(attr.id);
        }
    }
});
不要忘记将指令绑定到表:

<table id="dataTable_{{$ctrl.entry.id}}" class="table scrolling-table" jq-stuff>
...
</table>

...

与angular应用程序中所有与dom相关的代码一样,您使用指令访问元素。你到底需要做什么?我在window.resize.event上调整列大小。这与可滚动数据表有关。如果我使用类似datatables节点模块的东西,同样的问题也会发生。所有存在的东西都需要一个html对象上的固定id,我无法在代码中添加该id。这真是一件令人沮丧的事情……所有这些都应该在指令中完成。听起来应用程序设计有缺陷。建议阅读angular应用程序中与dom相关的所有代码,使用指令访问元素。你到底需要做什么?我在window.resize.event上调整列大小。这与可滚动数据表有关。如果我使用类似datatables节点模块的东西,同样的问题也会发生。所有存在的东西都需要一个html对象上的固定id,我无法在代码中添加该id。这真是一件令人沮丧的事情……所有这些都应该在指令中完成。听起来应用程序设计有缺陷。建议阅读Ok,所以我必须为我的应用程序创建一个指令?我不能这样做,因为我的代码中还有其他内容。我在页面加载和window.resize上调整了列大小。我在示例中添加了一些代码来帮助理解我的问题。控制器的参数是错误的。您正在显示
链接
参数您可以按角度处理窗口大小调整事件。只需在指令中插入$window并注册到resize事件。你可以找到一个例子。好的,那么我必须为我的应用程序创建一个指令吗?我不能这样做,因为我的代码中还有更多的东西。我在页面加载和window.resize上调整了列大小。我在示例中添加了一些代码来帮助理解我的问题。控制器的参数是错误的。您正在显示
链接
参数您可以按角度处理窗口大小调整事件。只需在指令中插入$window并注册到resize事件。你可以找到一个例子。