使用each()填充集合

时间:2011-05-13 01:11:42

标签: jquery

我正在尝试使用每个集合填充集合。我可以在一个字符串中获取元素,并且我可以在每次迭代时触发警报。我不能把两者放在一起。

这是我的清单:

4/27/2011 5:42:54 PM
4/27/2011 5:43:00 PM
4/27/2011 5:46:53下午 4/28/2011 2:10:40 PM

这是我的代码。

if (chosenTime > 0) {
    var myDateClass = $('.exceptionDate')
    var i = 0
    $(myDateClass).each(function () {
       var myDateClassVal = myDateClass[i].GetAttributeNode(outerText);
       //this currently gives an error              
       //if I switch this to myDateClass.text();
       // it returns the list in one string
       i++
       });

4 个答案:

答案 0 :(得分:2)

每次使用$(this).text()内的

this是每个项目中的单个项目。

答案 1 :(得分:0)

尝试使用地图功能:

var selected = $('.exceptionDate').map(function(i, e) {
    return $(e).text();
});

alert(selected.length);

http://jsfiddle.net/hunter/2wYTT/

答案 2 :(得分:0)

我认为你对.each()感到困惑。

您可能需要查看API:

http://api.jquery.com/each/

$(myDateClass).each(function () {
       var myDateClassVal = myDateClass[i].GetAttributeNode(outerText);
       i++; // This is not needed.
       });

因此,如果您将其定义为each(function(indx, elem) { }),它将帮助您迭代每个元素elem,或通过索引引用它。

答案 3 :(得分:0)

我并不完全明白您的意思,但如果您想要每个.exceptionDate元素的文本内容数组,则可以.map()使用.get()

var array = myDateClass.map(function () {
   return $(this).text();
}).get();

或者以类似的方式,您可以使用jQuery.map()

var array = $.map(myDateClass,function (el) {
   return $(el).text();
});