【发布时间】:2012-03-17 11:51:22
【问题描述】:
Linq-For-Javascript 库包含在“jQuery objects”和“Enumerable objects”之间转换的函数:toEnumerable() 和 TojQuery()。考虑这两行之间的区别:
$('tr'); // returns array of tr
$('tr').toEnumerable().TojQuery(); // returns array of tr[1]
从 jQuery 转换为 Enumerable 再转换回 jQuery 并没有为您提供一开始的内容。最终结果是一个元素数组的数组,每个子数组的长度为 1。我确实需要使用 Enumerable,所以这只是我的问题的一个方便示例。
这意味着要获取元素的 id,您需要执行以下操作:
$('tr')[0].id; // returns "myID"
$('tr').toEnumerable().TojQuery()[0][0].id; // returns "myID"
我对此感到惊讶,因为即使据称我已经返回 TojQuery(),TojQuery() 返回的对象也不适用于典型的 jQuery 调用:
$('tr').find('td').length; // returns 170 (in my case)
$('tr').toEnumerable().TojQuery().find('td').length; // returns 0 (BAD)
如果两行都返回 170,我希望它,但显然 Linq-For-Javascript 不能那样工作。
那么,我的问题:
- 这是为什么呢?
- 我做错了吗?
- 如果没有,有什么好的解决方法吗? (将
array of 1-element arrays转换为array of elements?)
谢谢!
【问题讨论】:
标签: javascript jquery arrays linq