0

好的,我正在制作一个私人消息系统,并且我已将 php 设置为回显具有相同类的 div,但将 id = 设置为行 ID,请检查下面的代码。

function Load()
{

$Connect = new mysqli("localhost", "root", "", "Data");
session_start();
$User = $_SESSION['Username'];
$Stats = 'SELECT * FROM Messages WHERE User="'.$User.'"';

if($Result = $Connect->query($Stats))
{
    while($Row = $Result->fetch_assoc())
    {
        $From = $Row['FUser'];
        $Date = $Row['Date'];
        $Title = $Row['Title'];
        $ID = $Row['ID'];

        echo '<div id="'.$ID.'" class="String"><label class="TText" style="cursor:pointer;">From: ' . $From . ' - ' . $Date . ' - ' . $Title .'</label></div>';
    }
}

}

我的查询:

$('.String').click(function()
{
    var Msg = $('#MMsg');
    var Back = $('#Back');
    var Str = $('.String');
    Str.fadeOut('fast', function()
    {
        Msg.fadeIn('fast');
        Back.fadeIn('fast');
        var ID = $('.String').attr('id');

        $.ajax
        ({
            url:'MLoad.php',
            type:'POST',
            data:{ID:ID},
            dataType:'json',
            success:function(MText)
            {
                $('#MMBox').html(MText.T);
            }
        });
    });
});

当我提醒 var ID 时,两个 div 的结果相同,但在 html 中,每个 div 的 ID 不同。即警报框每次都给我第一个ID。

4

2 回答 2

2

使用 $(this) 获取正在应用淡出的元素的 ID。否则,您只会获得第一个匹配 div 的 ID。

var ID = $(this).attr('id');

于 2013-02-11T03:04:42.613 回答
0

当您处于点击功能时,this指的是被点击的项目。因此,您可以使用$(this).attr('id')来检索.String被点击的 ID。

$('.String').click(function()
{
    var id = $(this).attr('id');
    var Msg = $('#MMsg');
    var Back = $('#Back');
    var Str = $('.String');
    Str.fadeOut('fast', function()
    {
        Msg.fadeIn('fast');
        Back.fadeIn('fast');

        $.ajax
        ({
            url:'MLoad.php',
            type:'POST',
            data:{ID:id},
            dataType:'json',
            success:function(MText)
            {
                $('#MMBox').html(MText.T);
            }
        });
    });
});
于 2013-02-11T03:08:54.793 回答