如何使用jquery&获取多个标签值推进阵列

时间:2014-04-07 07:27:50

标签: javascript jquery arrays jsp

我需要通过迭代数据库中的列表来创建标签标签,它的工作正常 我需要获得这些价值观和推进阵列。

jsp code //返回三个值,例如:room1,room2,room3

<c:forEach var="roomOccupanice" items="${RoomOccRequestNow}">

<label value ="${roomOccupanice}"  class="roomOccupanice" id="roomOccupanice">${roomOccupanice}</label>

 </c:forEach>

.js代码

  var roomOcc = []

    $(".roomOccupanice").each(function(){

            var label = $("#roomOccupanice").text();
            alert($("#roomOccupanice").text());
            roomOcc.push(label);

        });

警报&amp; array(roomOcc)只填充room1, roomOcc = [room1,room1,room1]但是我需要这个房间哦= [room1,room2,room2]

澄清这一点。

4 个答案:

答案 0 :(得分:3)

使用$(this)引用获取循环中的当前元素文本

试试这个

    $(".roomOccupanice").each(function () {

    var label = $(this).text(); // It will get current label text
    alert($(this).text());
    roomOcc.push(label);

   });

答案 1 :(得分:1)

使用$(this)获取.each()中当前对象的引用。

 $(".roomOccupanice").each(function(){

        var label = $(this).text();
        alert($(this).text());
        roomOcc.push(label);

    });

答案 2 :(得分:0)

当你使用.each()函数时,它会重复在.each()之前写的元素上     $(&#34; .roomOccupanice&#34;)// jQuery Selector

如果在你的情况下有三个元素,那么.each()将重复3次,每次你想要引用当前项目,使用$(this)你也可以拥有它的计数器。 通过使用:

$(".roomOccupanice").each(function(loopcounter){
alert(loopcounter);
});

它显示如下: 0 1 2

答案 3 :(得分:-1)

您也可以使用 .map() 来缩短代码:

var roomOcc = $('.roomOccupanice').map(function(i, el) {
    return $(el).text();
});

另请注意,id是唯一的,您应该从id="roomOccupanice"

中删除<label>