我有一个名为conversations_client的ArrayList,我希望能够获得每个div的会话值[6]。 每个媒体div代表一个对话。 这是我的代码的一部分:
SELECT * FROM ALL_POSTS AS A
LEFT JOIN MOVIES AS B ON A.post_id = B.post_id AND A.type = B.type
LEFT JOIN MUSIC AS C ON A.post_id = B.post_id AND A.type = C.type
我首先尝试使用此代码:
<c:forEach var="conversation" items="${conversations_client}" >
<div class="media">
<div class="media-left">
<input class="checkbox" type="checkbox" name="selected-conv">
</div>
<div class="media-body">
<h4 class="media-heading">${conversation[0]}</h4>
<span class="hidden">${conversation[6]}</span>
......
但它不仅会打印对话[6],还会打印其他人,因为他们都会在课堂媒体内部进行讨论。
然后我尝试了这个:
<script type="text/javascript">
$('.media').click(function(){
var text = $(this).text();
alert(text);
});
</script>
但它会为所有div打印相同的id,这是第一个的id。
我该怎么做?将那些带有标签的媒体div包装起来以便能够为每一个使用特定的动作会更好吗?因为我正在显示所有会话,所以一旦用户点击其中一个,我将不得不恢复其ID以便能够显示该特定会话的消息,并且不建议在其中编写Java代码jsp。
谢谢:)
答案 0 :(得分:1)
使用当前元素中的find
。
$('.media').click(function()
{
var text = $(this).find('#hidden').text();
alert(text);
});
<强>更新强>
您正在使用循环重复标记。根据W3C标准,多次使用ID
hidden
并不好。 ID
应该是唯一的,并且应该在页面中使用一次。
使用class
代替id
进行多次使用。在这种情况下class="hidden"
更好地将<span id="hidden">${conversation[6]}</span>
更改为<span class="hidden">${conversation[6]}</span>
同时更改JS以查找.hidden
$('.media').click(function()
{
var text = $(this).find('.hidden').text();
alert(text);
});