2016-09-23 59 views
1

我从Controller类返回一个列表。如何在onChange()中获取列表的大小(从Controller返回)JQuery

httpReq.setAttribute("playersList", playersList); 

我想在onc​​hange()方法中列表的大小。

​​

我在这里显示这个列表:

<tr id = "players" style="display:none;"> 
    <td class="tabHead">PLAYER NAMES</td> 
    <td> 
     <div class="" id="playerNames" name="playerNames" >    
      <c:forEach items="${playersList}" var="playersListItem">         
       ${playersListItem.name}<br> 
      </c:forEach> 
     </div> 
    </td>  
</tr> 

我试过 -

var count = playersList.length; 
var count = $("#players").length; 

,但没有奏效。

+0

“httpReq.setAttribute(”playersList“,playersList);”这属于哪种语言?即您的服务器端是什么? –

+0

@ A.T.春天mvc –

回答

1

看来,在你的列表中的每个项目是一些无格式的文本后跟一个<br>的元素:

${playersListItem.name}<br> 

..在特定的<tr>内的特定<div>内。如此算来只算<br>元素是使用下列之一的<tr><div>内:

var count = $("#players").find("br").length; 
var count = $("#players br").length; 
var count = $("#playerNames").find("br").length; 
var count = $("#playerNames br").length; 

(注意,第二件事情,你试过,$("#players").length,应始终返回0或1,因为元素的ID选择应该总能找到0或1元。)

+0

是的,$(“#players”)。长度总是为1.很好的解决方案。工作。谢谢。 –

0

如果你稍微改变你的表格结构,你可以很容易地找到计数。就像我在这里添加类“playerName”又算什么呢玩家TR标签

<tr id="players" style="display:none;"> 
    <td class="tabHead">PLAYER NAMES</td> 
    <td> 
     <div id="playerNames" name="playerNames" >    
      <c:forEach items="${playersList}" var="playersListItem">         
       <div class="playerName">${playersListItem.name}</div> 
      </c:forEach> 
     </div> 
    </td>  
</tr> 


$('#players .playerName').length 
+0

我也试过这一个,但它给0。无论如何..非常感谢。 –

1

如何使用贡品选择

$("[id='players'] br").length; 

$('#playerNames > *').length; 
+1

非常感谢你。我试过 - $(“[id ='players'] br”)。工作。 :) –

相关问题