获取具有相同类的两个不同div的id值

时间:2013-02-11 02:59:14

标签: php jquery ajax html

好的我正在建立一个私人消息系统,我设置了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>';
    }
}

}

我的JQuery:

$('.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中每个ID都不同。警报框每次都给我第一张身份证。

2 个答案:

答案 0 :(得分:2)

使用$(this)获取正在应用的元素fadeOut的ID。否则你只得到第一个匹配div的ID。

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

答案 1 :(得分: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);
            }
        });
    });
});