如何解决PHP Javascript变量问题
| 我的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 \'变量值,而不是单击的那个,这有意义吗?
解决方法
首先,$(\'#credoff \')是一个ID ...,并且ID对于页面是唯一的。其次,如果有多个(并且通过CSS选择器正确构建),则您调用$(\'#credoff \')的方式只会给您第一个的值,因为不能将其与事件目标相关联。
由于在结构上看起来像输入是的子元素(也很奇怪,顺便说一句),因此您需要使用这样的选择器来获取credOff:
$(\'.getPoint\').click(function(){
// properly associated with the event target.
var credOff = $(this).find(\'input\').val();
// etc.
}
,元素ID在整个页面中必须是唯一的;如果不是,则未定义通过ID选择的尝试。最好的选择是使用以下内容:
<input type=\"hidden\" ... class=\"credoff\" />
然后在javascript中这样:
credoff = $(this).children(\'input.credoff:hidden\').val()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。