0

我有这段重复的代码。

<div class='commentfloatleft'>
                <button type='button' class='button2' onclick='upvote($id8)'>
                    <img src='images/likebutton.png'    class='upvoteimage' width='12' height='12' alt='PearlSquirrel'/>
                </button>
                <button type='button' class='button2' onclick='downvote($id8)'>
                    <img src='images/unlikebutton.png' width='12' height='12' alt='PearlSquirrel'/>
                </button>
            </div>

当我单击 onclick 代码进行投票时是这样的:

function upvote(box){
$(this).siblings('.upvoteimage').load('upvote.php?box=' + box);
}

我已经尽一切努力让它发挥作用。get 函数正在工作,但我看不到“.upvoteimage”中的任何变化。有谁知道如何解决这个问题。帮助将不胜感激。谢谢。

4

6 回答 6

2

您的代码说兄弟姐妹,但 .upvoteimage 不是兄弟姐妹而是孩子。尝试改用 find/children。

并且 $(this) 可能在函数中不存在。也许您应该将 onclick 事件移至脚本块。jQuery 有一些很棒的特性不适用于内联代码。

于 2012-09-03T05:43:53.497 回答
2

试试这个

HTML

  <div class='commentfloatleft'>
                    <button type='button' class='button2' onclick='upvote(this,\x27$id8\x27)'>
                        <img src='images/likebutton.png'    class='upvoteimage' width='12' height='12' alt='PearlSquirrel'/>
                    </button>
                    <button type='button' class='button2' onclick='downvote($id8)'>
                        <img src='images/unlikebutton.png' width='12' height='12' alt='PearlSquirrel'/>
                    </button>
                </div>

你的 jQuery 代码:

function upvote(obj,box){
$(obj).children('.upvoteimage').load('upvote.php?box=' + box);
}
于 2012-09-03T05:45:33.870 回答
2

试试这个方法:为你的“按钮”元素设置一个“upvote”类:

<div class='commentfloatleft'>
                <button type='button' class='button2 upvote' id='$id8'>
                    <img src='images/likebutton.png'    class='upvoteimage' width='12' height='12' alt='PearlSquirrel'/>
                </button>
                <button type='button' class='button2' onclick='downvote()'>
                    <img src='images/unlikebutton.png' width='12' height='12' alt='PearlSquirrel'/>
                </button>
            </div>​

并使用这个 JS 代码:

$(".upvote").on("click",function(){
    var box=$(this).attr("id");
    $(this).find('.upvoteimage').attr("src",'upvote.php?box=' + box);
    return false;
}​);​
于 2012-09-03T05:59:36.470 回答
0

您正在引用按钮的兄弟姐妹,并过滤那些 upvoteimage 类。

你想要做的是引用兄弟姐妹,然后选择他们的 upvoteimage 类的孩子:

$(this).siblings('.button2').children('.upvoteimage').load('upvote.php?box=' + box);
于 2012-09-03T05:44:49.603 回答
0

它是一个孩子而不是兄弟姐妹,那是它没有发生

你可以试试

$(this).siblings('.button2' > '.upvoteimage') 

我认为一些这样的东西会起作用

于 2012-09-03T05:52:38.567 回答
0

您应该使用.on()绑定事件而不是内联。

在您的upvote函数this中是窗口对象而不是单击的按钮。

带有 upvote 类的 img 是按钮的子级,而不是兄弟级。

您不能将任何内容加载到 img 标签中,它是一个空标签

于 2012-09-03T05:56:33.010 回答