我正在尝试根据一系列元素及其id属性以我的形式找到一堆<label>s
。
例如即可。 [ input#country , input#other-country ]
可以找到<label for="country"> , <label for="other-country">
等等......
到目前为止,我有这段代码:
var LOCATION = {};
LOCATION.option = form.find('input[name=location]').toArray();
LOCATION.labels = [
$.each( LOCATION.option, function(i, input) {
$('label[for='+input.id+']');
})
];
在input.id
循环中注销$.each
时,我会写出正确的值但是我似乎找不到从内部编写匹配的label
元素的方法之后$.each
循环进入LOCATION.labels
数组。
有谁知道如何将它们放入数组中? toArray()
似乎也不起作用......
感谢阅读。
答案 0 :(得分:1)
我可能会使用.map()
:
var LOCATION = {};
LOCATION.option = form.find('input[name=location]').toArray();
LOCATION.labels = $.map( LOCATION.option, function(input) {
return $('label[for='+input.id+']').get(0);
});
有关此操作的示例,请参阅here。
答案 1 :(得分:0)
试一试。不是直接获得数组的单行解决方案,但我已经测试了它并且它工作正常。
var LOCATION = {};
$(function(){
var form = $("#form"); //sample form
LOCATION.option = form.find('input[name=location]').toArray();
LOCATION.labels = [];
$.each(LOCATION.option, function(i,input) {
LOCATION.labels.push($('label[for='+input.id+']').get(0));
});
});
答案 2 :(得分:0)
你几乎拥有它,只是来自.push()
.each()
var LOCATION = {};
LOCATION.option = form.find('input[name=location]').toArray();
LOCATION.labels = [];
$.each( LOCATION.option, function(i, input) {
LOCATION.labels.push($('label[for='+input.id+']'));
})