相同的元素准备好找到哪个on被选择删除

时间:2017-07-24 06:22:47

标签: javascript jquery

一个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

2 个答案:

答案 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');
        }
    });

});