Javascript jquery问题?

Javascript jquery问题?,javascript,jquery,html,image,fadein,Javascript,Jquery,Html,Image,Fadein,我有这个jquery问题,我已经有好几天了,我对这个问题太陌生了,所以请原谅我在这个问题上的沉默。谢谢:)) html代码: <ul class="statuses"> <li id="set_23" class="message"> // this is meant to increase everytime you click the vote_up just like stackoverflow <span class="vote_count">

我有这个jquery问题,我已经有好几天了,我对这个问题太陌生了,所以请原谅我在这个问题上的沉默。谢谢:))

html代码:

<ul class="statuses">
<li id="set_23" class="message">
  // this is meant to increase everytime you click the vote_up just like stackoverflow 
  <span class="vote_count">27</span>
  <a href="#" class="vote_up"><img src="img/uparrow.png" /></a>
  <a href="#" class="vote_down"><img src="img/downarrow.png" /></a>

 </li>

</ul>
  • //就像stackoverflow一样,每次点击投票都会增加 27
这是我的jquery代码:

$(document).ready(function() {
    $('#statuses').delegate('.vote_up', 'click', function() {
       //get the id
        var the_id = $(this).closest('.message').attr('id').split('_').pop();
        //the main ajax request
        $.ajax({
            type: "POST",
            data: "action=vote_up&id=" + the_id,
            url: "ajax/votes.php",
            success: function (msg) {
                  // fade in the new vote_count
                $(this).siblings("span.vote_count").html(msg).fadeIn();
                  // get the child <img> and set its src
                $(this).children("img").attr("src", "img/uparrowActive.png");
            }
        });
    });

});
$(文档).ready(函数(){
$('#status')。委托('.vote_up','click',function(){
//拿到身份证
var the_id=$(this).closest('.message').attr('id').split('.pop();
//主要的ajax请求
$.ajax({
类型:“POST”,
数据:“action=vote_up&id=“+投票编号,
url:“ajax/voces.php”,
成功:功能(msg){
//在新的计票中淡出
$(this).sides(“span.vote_count”).html(msg.fadeIn();
//抓住孩子
编辑:jquery fade.in和change of image src也不起作用,我是否引用了正确的范围或类(ajax请求正在工作)

更改此选项

var the_id = $(this).closest('.message').attr('id').split('_').pop();
对此

var the_id = $(this).parents('.message').attr('id').replace('set_', '');
或者

var the_id = $(this).parent().attr('id').replace('set_', '');

如果您知道链接的父元素总是
ul.message

首先要跳出:

<ul class="statuses"> 
…jQuery中的#符号是id选择器(与CSS相同)。由于您的
设置为
class=“statuses”
,因此您需要使用类选择器:

$('.statuses')
这将从jQuery文档中断开所有jQuery:

beforeSend、error、dataFilter、, 成功和完整的选项都需要 在调用时调用的回调函数 适当的时间。此对象的 因为所有这些都将成为未来的目标 传递给$.ajax的上下文属性 在设置中;如果不是 指定它将是对的引用 Ajax设置本身


因此,尝试将
上下文添加到您的ajax请求选项中。

?很抱歉,我更新了这个问题,我忘记了我有php varibale thier。问题出在哪里?当您使用console.log(id)时会发生什么设置之后?POST调用发送的数据是什么?只需将代码放在JSFIDLE上,这样人们就可以一键看到它运行。好的,谢谢@user257493,我下次会这样做,谢谢again@getaway-虽然你的标题很差,但也没那么糟糕。但是你从来没有在你的帖子中问过问题。请确保我们这样做,我们也这样做不用猜你在问什么。这会帮助我们帮助你的。谢谢!:)哦,真不敢相信我没看到。哈哈,谢谢,计票工作正在进行,非常精彩,:),但成功函数不是执行淡入和图像更改!!+upvote from me thhanks STWnp;通常是这样简单的事情,或者如果页面上只有一个
状态(我猜是这样),最好保留
#status
,并将元素更改为
。这将是一个更快的查找。同样,只有当页面上只有一个时,这才是唯一的。谢谢大家,现在一切都正常了,但为什么当我点击页面按钮上的投票按钮时,它会将我带到页面顶部?为什么要更改?
.parents()如果存在嵌套的
.message
元素,则
可以返回多个结果,而
.closest()
将保证只有
.message
的第一个祖先。而且
.split(“'').pop()
。个人偏好尽可能明确。
.closest()
引入了歧义,如果标记被更改,可能会导致不良结果(而显式要求JS注意元素层次结构)。另外:将函数调用保持在最低限度,尤其是在链接时,这从来都不是一个坏主意。好的,个人偏好。我只是不知道你的答案与问题代码中的问题有何关联。
$('.statuses')