所以我使用jQuery在角度后链接函数中选择一些元素。唯一的问题是,jQuery找不到任何孩子。
var tr = tbl.find('> thead > tr');
console.log('th', tr.children('th').length, tr.children().length, tr[0].children);
输出:
是什么给出了?
修改
这是HTML本质上的
<table my-directive>
<thead>
<tr>
<th sorting-header="foo">foo</th>
<th sorting-header="foo">foo</th>
<th sorting-header="foo">foo</th>
<th sorting-header="foo">foo</th>
<th sorting-header="foo">foo</th>
<th sorting-header="foo">foo</th>
<th sorting-header="foo">foo</th>
</tr>
</thead>
...
</table>
编辑2
我想我遇到了某种类型的竞争条件。就像我说我没有写原始指令,我只是调整它。似乎当我交给tbl
元素时,表中还没有元素(所以我想),因为tr[0].innerHTML
吐出了一堆<!-- ngIf:
条款但是没有元素。我猜这是一些怪异的竞争条件。
感谢所有人的帮助,我现在想以不同的方式解决这个问题。
答案 0 :(得分:0)
使用此代码访问:
var rows= $('#element_ID > tbody > tr').length
var columns=$('#element_ID').find('tr')[0].cells.length;
var text = $($('#element_ID').find('tbody > tr')[rows-1]).children('td')[counter].innerHTML;
答案 1 :(得分:0)
很抱歉打扰所有人,看起来这是一个典型的竞争条件。
我决定将其限制在console
console.log('th', tr.children('th').length, tr.children().length, tr[0].children.length)
现在我得到3个零。所以我想我在console
看到的是由于控制台正在观看nodeList并实时更新其更改。
@Blazemonger钉了它。
答案 2 :(得分:0)
尝试使用var tr = tbl.children('thead > tr');