我有一個小問題,我的jQuery選擇器。當我只有一個列表項時,jquery代碼正常工作。但是當我有多個時,chatid
具有第一個列表項的值。爲什麼讓我總是第一個列表項的ID?jquery選擇器不會工作時多個元素
我的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);
}
});
});
迭代( 「#uItem1> LI>一個」)'使用'each',建立一個數組,並通過AJAX傳遞數組到服務器。 – Tushar
這是因爲attr()只獲取集合中第一個元素的屬性,所以它不能獲取所有元素的屬性。你可能想要的只是'var chatid = this.id' – adeneo
你不必在過程函數中再次使用相同的選擇器。使用簡單的'var chatid = this.id;'獲取正在處理的項目的ID – ikken