我需要通过迭代数据库中的列表来创建标签标签,它的工作正常 我需要获得这些价值观和推进阵列。
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]
澄清这一点。
答案 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>