1

我正在尝试将一些数据从 HTML 传递到 jQuery,我的代码部分有效,但由于我有多个具有相同类的标签,我不知道如何仅从被点击的标签发送数据。我试图通过 javascript 函数发送数据,但没有运气。有人可以看看我的代码并尝试帮助我。

<div id="inboxWindow">
        <table id="list_ofMessages">
            <tr>
                <td>id</td>
                <td>From</td>
                <td>Title</td>
                <td>Date</td>
            </tr>
        <?php while($data = $query2->fetch_assoc()): ?>
            <?php 
                $senderID = $data['senderID'];
                $query3 = $con->query("select * from login where user_id = '$senderID'");
                $name = $query3->fetch_assoc();
                $name = $name['username'];
             ?>
            <tr>
                <?php if($data['opened'] == 1) : ?>
                <td class="messageID"><?php echo $data['idmessage']; ?></td>    
                <td><?php echo $name; ?></td>   
                <td><a class="readMessageLink"><?php echo $data['title']; ?></a></td>
                <td><?php echo $data['received']; ?></td>
            <?php else : ?>
                <td class="messageID"><b><?php echo $data['idmessage']; ?></b></td> 
                <td><b><?php echo $data['senderID']; ?></b></td>    
                <td><b><a class="readMessageLink"><?php echo $data['title']; ?></a></b></td>
                <td><b><?php echo $data['received']; ?></b></td>
            <?php endif; ?>
            </tr>
        <?php endwhile; ?>
        </table>
    </div>
    <div id="messageWindow">
        <label id="titleArea"></label><br><br>
        <label>Message:</label><br>
        <label id="contentArea"></label>
    </div>

脚本.js

$(".readMessageLink").click(function(){
        $.post("readMessage.php", {"id" : $(".messageID").html()}, function(data){
            var obj = jQuery.parseJSON(data);
            $("#titleArea").html("Title: " + obj.title);
            $("#contentArea").html(obj.content);
        });
        $("#inboxWindow").slideToggle(300);
        $("#messageWindow").slideToggle(300);
    });

使用此代码,我总是从第一条消息中获取 messageID,无论我点击哪条消息。

4

2 回答 2

2

采用

"id" : $(this).closest('tr').find(".messageID").text()

代替

"id" : $(".messageID").html()
于 2013-08-21T10:27:41.020 回答
-1

试试这个

"id" : $(this).closest('tr').find(".messageID").text();
于 2013-08-21T10:31:30.707 回答