Kee*_*ker 2 html javascript jquery dom
我有一堆嵌套的复选框.我想选择所有复选框,并在该集合中首先使用"最深"元素.考虑以下html:
<div id="selection"></div>
<div>
<label>A: <input id="a" type="checkbox" /></label><br/>
<div>
<label>B: <input id="b" type="checkbox" /></label><br/>
<label>C: <input id="c" type="checkbox" /></label><br/>
</div>
<label>D: <input id="d" type="checkbox" /></label><br/>
<label>E: <input id="e" type="checkbox" /></label><br/>
<div>
<label>F: <input id="f" type="checkbox" /></label><br/>
<label>G: <input id="g" type="checkbox" /></label><br/>
<div>
<label>H: <input id="h" type="checkbox" /></label><br/>
<label>I: <input id="i" type="checkbox" /></label><br/>
</div>
</div>
<label>J: <input id="j" type="checkbox" /></label><br/>
</div>
Run Code Online (Sandbox Code Playgroud)
我正在使用一些jQuery来打印选择顺序:
var x = '';
$('input').each(function(){
x += $(this).attr('id') + ' - ';
});
$('#selection').text(x.substr(0, x.length - 3));
Run Code Online (Sandbox Code Playgroud)
结果是:a - b - c - d - e - f - g - h - i - j.
我希望订单或所选元素是I, H, G, F, C, B, J, E, D, A或H, I, B, C, F, G, A, D, E, J.如何重新排序选择以与我想要的兼容?或者他们是按照我想要的方式进行初始选择的方法吗?
喔...并为你们所有的小提琴手:http://jsfiddle.net/hze3M/4/!发疯!:d
var x = '';
var ar = [];
$('input').each(function(){
ar.push({length: $(this).parents().length, elmt: $(this)});
});
ar.sort(function(a,b) {
if (a.length - b.length > 0) {
return -1;
}
if (a.length - b.length < 0) {
return 1;
}
return 0;
});
for (var i=0; i<ar.length; i++) {
x += (ar[i].elmt.attr("id")) + ' - ';
};
$('#selection').text(x);
Run Code Online (Sandbox Code Playgroud)
Jsfiddle:http://jsfiddle.net/hze3M/7/
编辑:
这里是另一个解
$.fn.sortByDepth = function() {
var ar = this.map(function() {
return {length: $(this).parents().length, elt: this}
}).get(),
result = [],
i = ar.length;
ar.sort(function(a, b) {
return a.length - b.length;
});
while (i--) {
result.push(ar[i].elt);
}
return $(result);
};
var x = $('input').sortByDepth().map(function() {
return this.id;
}).get().join(' - ');
$('#selection').text(x);
Run Code Online (Sandbox Code Playgroud)
这里的功劳:从单独的jQuery对象创建一个jQuery对象集合
| 归档时间: |
|
| 查看次数: |
2065 次 |
| 最近记录: |