我想显示多星等级。我在jQuery循环中获得正确的评级值有问题。
我的html如下所示:
<select id="example{{$review->id}}" class="example" review-id="{{$review->id}}" data-rating="{{$review->rating}}">
<option value=""></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
我的jQuery:
$(function() {
$('.example').each(function(){
var x = $('select').attr('data-rating');
console.log(x);
var review_id = $('select').attr('review-id');
console.log(review_id);
$('#example' +review_id).barrating({
theme: 'fontawesome-stars',
showSelectedRating: true,
initialRating: x,
readonly: true
});
});
});
示例数据:
第一结果是5星级,review_id =1 第二名为4星级,review_id =2。
在jQuery中,它正确地循环了2次,但x和review_id的结果都是5星级,id为1。
如何解决这个问题,这样jquery评级星就可以在两个结果上正确显示?
发布于 2017-01-10 03:02:47
尝试将您的脚本更新到下面。
$(function() {
$('.example').each(function() {
var x = $(this).attr('data-rating');
console.log(x);
var review_id = $(this).attr('review-id');
console.log(review_id);
$('#example' +review_id).barrating({
theme: 'fontawesome-stars',
showSelectedRating: true,
initialRating: x,
readonly: true
});
});
});
在jQuery .each()循环中,应该引用$(this)来检索循环中活动元素的数据。
发布于 2018-04-30 04:04:39
简单的修正是针对类而不是ID。
示例:
剧本:
<script type="text/javascript">
$(function() {
$('.example').barrating({
theme: 'fontawesome-stars',
initialRating: $('.example').data('current-rating'),
});
});
</script>
HTML:
<select class="example">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<select class="example">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
https://stackoverflow.com/questions/41567033
复制相似问题