1

<label>s我正在尝试根据一组元素及其 id 属性以我的形式找到一堆。

例如[ input#country , input#other-country ]将能够找到<label for="country"> , <label for="other-country">等等......</p>

到目前为止,我有这个代码:

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()似乎也不起作用……</p>

谢谢阅读。

4

3 回答 3

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);
});

有关此操作的示例,请参见此处。

于 2010-09-17T00:10:40.843 回答
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));
  });
});
于 2010-09-17T00:38:46.673 回答
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+']'));
})
于 2010-09-17T01:37:02.737 回答