我的PHP页面中有一个while循环,我看下面的内容......
print $divLeft.strip_tags($row->twitterUser)."?size=normal\"/><br \/>".$row->twitterUser.$divRight."<a href='javascript:void(0);' id='vote_$row->id' class='getPoint'>Get " .$row->coff. "<input type='hidden' value='$row->coff' id='credoff'/> credit(s)</a><br /></div>$clearDiv</div></div>";
我在隐藏字段中设置了值,然后我在javascript中调用...
{
var theid = $(this).attr("id");
var onlyID = theid.split("_");
var onlyID = onlyID[1];
credoff = $("#credoff").val();
$.ajax({
url: 'do.php',
type: 'POST',
data: "userID=" + onlyID,
success: function(data) {
if(data != "success1" && data != "success5") {
$("#" + theid).text(data);
}else{
$("#thediv_" + onlyID).fadeOut("slow");
$('#creditsBalance').fadeOut("slow");
newbalance = parseInt($('#creditsBalance').text());
if(data != "success5") {
alert('Credits offered = '+credoff);
唯一的一点就是在我的javascript中它抓住了页面上最高的'credoff'变量值,而不是单击的那个,这有意义吗?
答案 0 :(得分:0)
首先,$('#credoff')是一个ID ...并且ID对于页面是唯一的。其次,如果有多个(并通过CSS选择器正确构建),你调用$('#credoff')的方式只会给你第一个的值,因为你没有将它与事件目标。
因为它在结构上看起来像输入是一个孩子(也很奇怪,顺便说一句),你需要使用这样的选择器来获得credOff:
$('.getPoint').click(function(){
// properly associated with the event target.
var credOff = $(this).find('input').val();
// etc.
}
答案 1 :(得分:0)
元素ID在整个页面中必须是唯一的;如果不是,那么尝试按ID选择是不确定的。你最好的选择是使用这样的东西:
<input type="hidden" ... class="credoff" />
然后在javascript中这样:
credoff = $(this).children('input.credoff:hidden').val()