Javascript jQuery选择器故障
我在一个页面上有一堆笑脸,点击时必须选中。我尝试实现一个基于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;">
<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');正如你所建议的,它仍然不起作用(