星级评分是一种常见的用户界面元素,允许用户通过点击星星来提供评分。在jQuery中实现星级评分通常使用HTML元素(如<span>
或<div>
)来表示星星,并通过jQuery事件处理来捕获用户的选择。
<div class="star-rating">
<span class="star" data-value="1">★</span>
<span class="star" data-value="2">★</span>
<span class="star" data-value="3">★</span>
<span class="star" data-value="4">★</span>
<span class="star" data-value="5">★</span>
</div>
<p>你选择的评分是: <span id="selected-rating">0</span></p>
<script>
$(document).ready(function() {
$('.star').click(function() {
// 获取点击的星值
var rating = $(this).data('value');
// 更新显示
$('#selected-rating').text(rating);
// 可选:高亮选中的星星
$('.star').removeClass('active');
$(this).prevAll('.star').addBack().addClass('active');
});
});
</script>
<style>
.star {
font-size: 24px;
color: #ccc;
cursor: pointer;
}
.star.active {
color: gold;
}
</style>
<div class="star-rating">
<span>★</span>
<span>★</span>
<span>★</span>
<span>★</span>
<span>★</span>
</div>
<p>你选择的评分是: <span id="selected-rating">0</span></p>
<script>
$(document).ready(function() {
$('.star-rating span').click(function() {
// 获取点击的星值(索引+1)
var rating = $(this).index() + 1;
// 更新显示
$('#selected-rating').text(rating);
// 可选:高亮选中的星星
$('.star-rating span').removeClass('active');
$(this).prevAll('span').addBack().addClass('active');
});
});
</script>
$(document).ready()
中执行,检查选择器是否正确console.log()
调试,确认获取的值是否符合预期对于更复杂的星级评分系统,可以考虑以下增强功能:
// 鼠标悬停效果
$('.star').hover(
function() {
var hoverValue = $(this).data('value');
$('.star').removeClass('hover');
$(this).prevAll('.star').addBack().addClass('hover');
},
function() {
$('.star').removeClass('hover');
}
);
// 半星评分(需要额外的HTML结构和更复杂的逻辑)
// AJAX提交评分到服务器
以上方法提供了从简单到相对完整的星级评分实现,可以根据项目需求选择适合的方案或进行进一步扩展。