0

我正在尝试使用此处的方法实现星级评分系统:https ://stackoverflow.com/a/1987545/1543310我已经能够让它成功工作,但我正在尝试根据输出对其进行调整woocommerce 星级评分系统,因此我可以轻松更改输出的图像。

基本上我想知道如果没有<strong>附加类,是否有一种方法可以在下面的 html 中定位和更改标签的内容,因为还有一些其他的如何输出以下内容的版本,但它们都包括一个中的强标签<div class="star-rating">

HTML:

<div class="star-rating">
    <span>
        <strong class="rating">3.5</strong> 
    </span>
</div>

我在这里设置了一个我正在尝试做的小提琴:http: //jsfiddle.net/AwCLm/包含 woocommerce html 输出。

这是我设置的一个工作示例,但它需要为以下设置一个类:http <strong>: //jsfiddle.net/YYWQx/1/

4

4 回答 4

1

编辑了我的答案,因为我误解了 OP。

如果你的意思是你想要定位<strong>元素而不管它是否有一个rating类,你可以$('.star-rating strong').stars();在你的 JS 中使用,并修改 CSS 选择器:

.star-rating > span strong {
    display: block;
    background: url(http://testing.wpovernight.com/wp-content/uploads/2013/03/stars.png) 0 -16px repeat-x;
    width: 80px;
    height: 16px;
}   
.star-rating > span strong > strong{
    background-position: 0 0;
}

http://jsfiddle.net/YYWQx/5/

于 2013-03-27T16:52:58.973 回答
1

这是我为您提供的解决方案。

那是你要找的吗?

http://jsfiddle.net/migontech/YYWQx/6/

$.fn.stars = function() {
    return $(this).each(function() {
        // Get the value
        var val = parseFloat($(this).html());
        // Make sure that the value is in 0 - 5 range, multiply to get width
        var size = Math.max(0, (Math.min(5, val))) * 16;
        // Create stars holder
        var $span = $('<span />').width(size);
        // Replace the numerical value with stars
        $(this).html($span);
    });
}
$(function() {
    $('div.star-rating strong').stars();
});
于 2013-03-27T17:03:51.857 回答
0

在您的小提琴中,您的目标是直接子代>div.star-rating这将不起作用,而是您应该尝试以下一个:

我认为这可以帮助你:

 $('div.star-rating strong').stars();

因为在$('<strong />').width(size);_<strong><strong.rating>

和css的变化:

strong.rating, strong.rating strong {
  //-----------^^^^^^^^^^^^^^^^^^^^---------You have to include this too.
于 2013-03-27T17:04:54.217 回答
0

除非我遗漏了什么,否则我不明白为什么选择器div.star-rating strong不起作用。如果我理解你的问题,<div class='star-rating'>总是存在,你只是不知道嵌套<strong>是否有一个类。在这个更新的小提琴中,星级似乎已经更新。

http://jsfiddle.net/AwCLm/6/

于 2013-03-27T17:07:48.547 回答