【发布时间】:2015-12-27 15:54:31
【问题描述】:
我的 jquery 选择器有点问题。当我只有一个列表项时,jquery 代码可以正常工作。但是当我有多个时,chatid 具有第一个列表项的值。为什么我总是得到第一个列表项的 id?
我的 html 和 foreach 循环:
<ul data-role="listview" id="uItem1" data-inset="true">
<?php foreach ($result as $keyres => $rowres): ?>
<li><a class="chat" id="<?php echo $rowres['id']; ?>" href="accept.php">chat</a></li>
<?php endforeach; ?>
</ul>
我的 jquery:
$("#uItem1 > li > a").click(function() {
var chatid = $("#uItem1 > li > a").attr('id');
$.ajax({ url: 'read.php',
data: {chatid},
type: 'POST',
success: function(output) {
// alert(output);
}
});
});
【问题讨论】:
-
使用
each迭代$("#uItem1 > li > a"),创建一个数组并通过ajax将数组传递给服务器。 -
那是因为
attr()只能获取集合中第一个元素的属性,无法获取所有元素的属性。你可能想要的只是var chatid = this.id -
您不必在处理函数中再次使用相同的选择器。只需使用
var chatid = this.id;即可获取正在处理的项目的 ID
标签: javascript jquery foreach