一个foreach循环在div中生成许多具有相同类的元素(div通过id“#show_case”固有地存在)
foreach ($messages as $key => $value) { ?>
<div class="message">
<p class="username"><?php echo $value['username']; ?></p> <span>say:</span>
<p class="text"> <?php echo $value['message']; ?></p>
<p class="message_id"><?php echo $value['message_id']?></p>
</div> <?php }
}
我构建了一个右键单击上下文菜单,其中包含一个id为#delete的删除按钮,并在单击时执行此代码
$('#delete').click(function(e) {
e.preventDefault();
var id = $('.message_id').text();
$.ajax({
url: 'ajax/chat.php',
type: 'POST',
data: {
method: "delete",
id: id,
},
success: function (data) {
alert('successfully deleted');
}
});
});
删除按钮在这里(右键单击右边的上下文菜单将会是avilibe)
<div class="menu">
<ul>
<li>
<button id="delete">delete</button>
</li>
</ul>
</div>
我试过
var id = $('.message_id').text();
获取id但是它返回类message_id所有元素id ...我只是删除按钮点击的元素的id
答案 0 :(得分:0)
您的#delete
按钮在哪里?
如果删除按钮包含.message_id
,则可以使用
var id = $(this).find('.message_id').text();
答案 1 :(得分:0)
我创建了一个DEMO来获取id
上元素的right click
,并将此id保存到输入或隐藏元素中,以便可以在不同的函数中检索。以下是DEMO的代码:
<强> HTML:强>
<h3>Right click on below messages</h3>
<div class="message" style="border:1px dotted">
<p class="username">Username 1</p> <span>say:</span>
<p class="text"> text 1</p>
<p class="message_id">1</p>
</div>
<br>
<div class="message" style="border:1px dotted">
<p class="username">Username 2</p> <span>say:</span>
<p class="text"> text 2</p>
<p class="message_id">2</p>
</div>
<br>
Selected message id:
<input type="text" id="selected_message_id" />
<强> JS:强>
$(function () {
$(".message").contextmenu(function() {
alert("clicked message id = "+$(this).find('.message_id').html());
$('#selected_message_id').val($(this).find('.message_id').html());
return false;
});
});
现在,在您的以下功能中,您可以获得message_id
这样的内容:
$('#delete').click(function(e) {
e.preventDefault();
var id = $('#selected_message_id').val();//get the message_id from the hidden/text input
$.ajax({
url: 'ajax/chat.php',
type: 'POST',
data: {
method: "delete",
id: id,
},
success: function (data) {
alert('successfully deleted');
}
});
});