我有一个指令克隆其目标表元素,然后修改克隆。我想改变克隆表中行(或单元格)的宽度。
使用jqLite,该指令可以设置表的宽度:
elem.css({width: 180+'px'});
对表中的行(或td)执行类似的语句会产生'TypeError:undefined不是函数':
row.css({ width: cellWidth+'px' });
这个jQuery片段完全符合我的需要:
var $fixedTable = fixedTable;
$fixedTable.find('tr').each(function (x, elem) {
$(elem).find('th,td').each(function (i, elem) {
$(elem).width(cellWidth);
});
});
可以使用jqLite完成,还是需要使用jQuery来更改行宽?
答案 0 :(得分:0)
jqLite是jQuery的一个子集。 jqLite包含仅限于按标记名称查找的find()方法。我需要查看更多代码,但如果您只使用标签(tr,th,td等),那么您应该只能使用jqLite选择所需的子元素。 jqLite不包含您在上面使用的width()方法。您可以使用addClass()作为解决方法,但是您需要具有预定义的宽度类。我希望这有帮助。有一种观点认为你应该避免使用AnguarJS的jQuery。您应该能够轻松使用jqLite,但这取决于确切的用例。
https://docs.angularjs.org/api/ng/function/angular.element
Angular的jqLite jqLite仅提供以下jQuery方法:
答案 1 :(得分:0)
我认为问题是你如何遍历elem
到孩子(row
),因为
row.css({ width: cellWidth+'px' });
是对的。可能你必须使用类似的东西:
row = elem.children(XY);
请参阅Angular's jqLite文档以供参考。