好的我正在建立一个私人消息系统,我设置了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都不同。警报框每次都给我第一张身份证。
答案 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);
}
});
});
});