Mo *_*our 35 javascript linq jquery
让我解释一下:
我们知道jQuery中的map函数充当.Select()(如在LINQ中).
$("tr").map(function() { return $(this).children().first(); }); // returns 20 tds
Run Code Online (Sandbox Code Playgroud)
现在的问题是我们如何才能在jQuery中使用.SelectMany()?
$("tr").map(function() { return $(this).children(); }); // returns 10 arrays not 20 tds!
Run Code Online (Sandbox Code Playgroud)
这是我的实例:http : //jsfiddle.net/8aLFQ/4/
如果我们有selectMany,"l2"应为8.
[注意]请不要坚持这个例子,上面的代码只是显示我的意思是SelectMany()否则很容易说$("tr").children();
希望它足够清楚.
SLa*_*aks 43
map将展平本机阵列.因此,你可以写:
$("tr").map(function() { return $(this).children().get(); })
Run Code Online (Sandbox Code Playgroud)
您需要调用.get()返回本机数组而不是jQuery对象.
这也适用于常规对象.
var nested = [ [1], [2], [3] ];
var flattened = $(nested).map(function() { return this; });
Run Code Online (Sandbox Code Playgroud)
flattened会平等的[1, 2, 3].
Šim*_*das 25
你要这个:
$("tr").map(function() { return $(this).children().get(); });
Run Code Online (Sandbox Code Playgroud)
现场演示: http ://jsfiddle.net/8aLFQ/12/
你要踢自己:
$("tr").map(function() { return [ $(this).children() ]; });
Run Code Online (Sandbox Code Playgroud)
这是你珍惜的生活中的简单事物. - Fred Kwan
编辑:哇,这将教我不要彻底测试答案.
手册说map扁平化阵列,所以我认为它会使阵列状物体变平.不,你必须明确地转换它,如下:
$("tr").map(function() { return $.makeArray($(this).children()); });
Run Code Online (Sandbox Code Playgroud)
事情应尽可能简单,但并不简单. - 艾尔伯特爱因斯坦
| 归档时间: |
|
| 查看次数: |
6536 次 |
| 最近记录: |