<head>
<script type="text/javascript">
$(document).ready(function() {
$(".viewLink").click(function()
{
var requisiteId = $('.viewLink').attr('value');
alert(requisiteId);
var dataString = 'id='+ requisiteId;
$.ajax({
type: "POST",
url: "checkRequestExe.php",
data: dataString,
cache: false,
success: function(data)
{
$("#individualRequisite").show();
$("#eachRequisite tr").remove();
if (data != false)
{
$("#eachRequisite").prepend(data);
$("#eachRequisite").hide().fadeIn('slow');
}
}
});
return false;
});
});
</script>
</head>
<body>
<div style="width:752px; height:330px; overflow:auto;">
<table class="record" cellspacing="0" cellpadding="5">
<tr style="background-color:#808080; font-size:12px; color:white; font-weight:bold;">
<td width="400">Title</td>
<td width="100">Requestor</td>
<td width="145">Date Request</td>
<td width="80">Status</td>
</tr>
<?
$count=0;
while ($data = mysql_fetch_array($results))
{
$requisiteId = $data["RequisiteId"];
$title = $data["Title"];
$userId = $data["UserId"];
$date = $data["DateRequest"];
$status = $data["Status"];
$color = ($count%2==0)?'CCCCFF':'E8E8E8';
?>
<tr style="background-color:#<?=$color?>; color:black; font-weight:bold;">
<td><?=$title?></a></td>
<td><?=$userId?></a></td>
<td><?=$date?></td>
<td>
<?
if ($status == 0)
{
$word = "Pending";
}
else
{
$word = "Completed";
}
echo "<a href='#individualRequisite' class='viewLink' value='$requisiteId'>$word</a>";
?>
</td>
</tr>
<?
$count++;
}
?>
</table>
</div>
</body>
如何唯一地标识类viewLink,以便在单击任何具有该类的锚时,锚的值(&#34; requisiteId&#34;)被传递到jquery并随后被传递到另一个脚本来处理?
目前的问题是它将不断被最新的requisiteId取代。 任何解决方案?
问题在于[var requisiteId = $('.viewLink').attr('value');
]
即使我点击了不同行的锚点,requisiteId
总是一样的。
答案 0 :(得分:1)
我认为不是行
var requisiteId = $('.viewLink').attr('value');
你想要
var requisiteId = $(this).attr('value');
答案 1 :(得分:0)
您的问题是有多个viewLink对象,因此当您运行$('。viewLink')时,您实际上正在返回一个项目列表。
如果您在列表中调用.attr(),您将获得第一个。你需要这样做:
$(".viewLink").click(function()
{
var requisiteId = $(this).attr('value');
这将返回目标项目的attr。