-3
<script type="text/javascript">
$('.star').mouseover(function (){
var star = $(this).index() 1;
$(this).parent().css("background-position","0 -" (32 * star) "px");
});

$('.star-rating').mouseout(function (){
var originalresult = $(this).attr('id').split('result')[1];
$(this).css("background-position","0 -" (32 * originalresult) "px");
});
</script>

<div class="star-rating" id="rating1result0">
<div class="star"></div>
<div class="star"></div>
<div class="star"></div>
<div class="star"></div>
<div class="star"></div>
</div>
<div class="result">
<span style="color:green">0</span> (0)
</div>              

我收到以下 2 条错误消息:

SyntaxError: missing ) 在参数列表之后

$(this).parent().css("background-position","0 -" (32 * star) "px");

和语法错误:缺失;声明之前

var star = $(this).index() 1;
4

3 回答 3

4
("background-position","0 -" (32 * star) "px"
                            X           X

错误消息有点误导。它正在寻找)与我引用的代码开头的匹配。如果你要添加一个,你只会得到一个不同的错误。问题是您需要在标记的两个地方有一个操作员X

您可能正在寻找一个+(尽管其他在语法上是有效的,尽管在上下文中不太有用)

var star = $(this).index() 1;

你在这里也有类似的问题。同样,您似乎想要添加1到索引中。

于 2013-01-13T12:28:54.117 回答
1

在 JavaScript 中,您必须使用 + 作为 concat 运算符。

http://www.w3resource.com/javascript/operators/string-operator.php

<script type="text/javascript">
$('.star').mouseover(function (){
    var star = $(this).index() + 1;
    $(this).parent().css("background-position","0 -" + (32 * star) + "px");
});

$('.star-rating').mouseout(function (){
    var originalresult = $(this).attr('id').split('result')[1];
    $(this).css("background-position","0 -" + (32 * originalresult) + "px");
});
</script>

<div class="star-rating" id="rating1result0">
<div class="star"></div>
<div class="star"></div>
<div class="star"></div>
<div class="star"></div>
<div class="star"></div>
</div>
<div class="result">
<span style="color:green">0</span> (0)
</div>              
于 2013-01-13T12:33:05.390 回答
1

您需要引入连接运算符+,因此这是正确的代码行:

var star = $(this).index() + 1;
$(this).parent().css("background-position","0 -" +(32 * star)+ "px");
$(this).css("background-position","0 -" +(32 * originalresult) +"px");

试试这个代码:

<script type="text/javascript">
$('.star').mouseover(function (){
var star = $(this).index() + 1;
$(this).parent().css("background-position","0 -" +(32 * star)+ "px");
});

$('.star-rating').mouseout(function (){
var originalresult = $(this).attr('id').split('result')[1];
$(this).css("background-position","0 -" +(32 * originalresult) +"px");
});
</script>

<div class="star-rating" id="rating1result0">
<div class="star"></div>
<div class="star"></div>
<div class="star"></div>
<div class="star"></div>
<div class="star"></div>
</div>
<div class="result">
<span style="color:green">0</span> (0)
</div>        
于 2013-01-13T12:39:24.287 回答