Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery选择器故障_Javascript_Jquery - Fatal编程技术网

Javascript jQuery选择器故障

Javascript jQuery选择器故障,javascript,jquery,Javascript,Jquery,我在一个页面上有一堆笑脸,点击时必须选中。我尝试实现一个基于jquery的解决方案,但我仍停留在这个阶段,在这个阶段选择了多个微笑: <div class="smiles_feed"> <input type="text" id="rating" value="" name="rating" class="displaynone" /> <div style="float:left;width:auto;text-align:Center;">

我在一个页面上有一堆笑脸,点击时必须选中。我尝试实现一个基于jquery的解决方案,但我仍停留在这个阶段,在这个阶段选择了多个微笑:

<div class="smiles_feed">
    <input type="text" id="rating" value="" name="rating" class="displaynone" />
    <div style="float:left;width:auto;text-align:Center;">
        <button type="button" class="awesomesmile" class="unselected" value="Awesome" style="margin-bottom:0px;"></button>
        <div class="smiletitle" style="font-size:9pt;color:white;">Yummy!</div>
    </div>
    <div style="float:left;width:auto;text-align:Center;">
        <button type="button" class="goodsmile" class="unselected" value="Good" style="margin-bottom:0px;"></button>
        <div class="smiletitle" style="font-size:9pt;color:white;">Good!</div>
    </div>
    <div style="float:left;width:auto;text-align:Center;">
        <button type="button" class="okaysmile" class="unselected" value="Okay" style="margin-bottom:0px;"></button>
        <div class="smiletitle" style="font-size:9pt;color:white;">Okay!</div>
    </div>
    <div style="float:left;width:auto;text-align:Center;">
        <button type="button" class="yucksmile" class="unselected" value="Yuck" style="margin-bottom:0px;"></button>
        <div class="smiletitle" style="font-size:9pt;color:white;">Yuck!</div>
    </div>
</div>

<script type='text/javascript'>
    $(function(){
        // Smile Click Function
        $('div.smiles_feed :button').click(function(){
            $(this).removeClass('unselected').addClass('selected');
            $(this).siblings().removeClass('selected').addClass('unselected');
            $('#rating').val($(this).val());
            //alert($('#rating').val());
        });
    });
</script>

好吃的
好!!
可以
讨厌!
$(函数(){
//微笑点击功能
$('div.smiles\u feed:button')。单击(函数(){
$(this).removeClass('unselected').addClass('selected');
$(this).sides().removeClass('selected').addClass('unselected');
$('#rating').val($(this.val());
//警报($(“#评级”).val();
});
});
我做错了什么?如何更改javascript函数以使其仅选择一个笑脸

  • $(此)
    函数中的
    click()
    指的是单击的按钮,而不是单击的div。您需要将所选的
    类添加到
    $(this).parent()
  • sibbines()
    返回的元素不是表示其他笑脸的div,而是此笑脸的其他元素(在本例中为
    div.smiletitle
  • 要获得其他笑脸的列表,您应该查看
    $(this).parent().siblines()

    如果您的按钮代表微笑,那么您应该像这样遍历其他微笑:

    $(this).parent().siblings().children('button')
    
    并使它们每个都被取消选择:

    $(this).parent().siblings().children('button').each(function(){
        $(this).removeClass('selected')
        .addClass('deselected');
    });
    

    很好,嘿,高拉夫。该值正在正确分配。那是因为,$('#rating').val($(this.val());将仍然有效,因为$(此)仍然引用该按钮。问题是在UI中,我刚才单击的笑脸没有取消选择以前单击的笑脸。哦,k。。错误地解释了这个问题。笑脸被选中了。但是,当我选择另一个笑脸时,不会取消选择。我尝试了$(this.parent().sides().removeClass('selected').addClass('unselected');正如你所建议的,它仍然不起作用(