Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用$的属性(此)_Javascript_Jquery - Fatal编程技术网

Javascript 使用$的属性(此)

Javascript 使用$的属性(此),javascript,jquery,Javascript,Jquery,老实说,我不知道我的问题是否与我正在使用的插件的jQuery有关 我使用RateYo()插件在我们的网站上显示星星。需要显示的星星数在div的属性中给出: <div id="rating-avg" class="rateyo" rating="<?php echo $avg_rating; ?>" preset="true"></div> })) 不幸的是,这不起作用。该插件确实启动并创建了STAR,但是变量$(this.attr('rating')和$(t

老实说,我不知道我的问题是否与我正在使用的插件的jQuery有关

我使用RateYo()插件在我们的网站上显示星星。需要显示的星星数在div的属性中给出:

<div id="rating-avg" class="rateyo" rating="<?php echo $avg_rating; ?>" preset="true"></div>
}))

不幸的是,这不起作用。该插件确实启动并创建了STAR,但是变量$(this.attr('rating')和$(this.attr('preset')没有使用。不显示评级,而是显示空星

当我使用以下代码时,评级将完美显示:

    $("#rating-avg").rateYo({
        rating: $("#rating-avg").attr("rating"),
        readOnly: $("#rating-avg").attr("preset")
    });
不幸的是,我需要插件按类启动,而不是id。我们在网站上有不同数量的评级,所以按id选择它们不是一个选项


有人知道我做错了什么吗?

您的
值将不正确,并且您的类名使用了错误的大写字母。您可能可以让它像这样工作:

$(".rateyo").each(function() {
     var item = $(this);
     item.rateYo({
         rating: item.attr('rating'),
         readOnly: item.attr('preset')
     });
});

注意,您可能应该使用HTML5数据属性,而不是您自己的自定义属性:

<div id="rating-avg" class="rateyo" data-rating="<?php echo $avg_rating; ?>" data-preset="true"></div>

$(".rateyo").each(function() {
     var item = $(this);
     item.rateYo({
         rating: item.data('rating'),
         readOnly: item.data('preset')
     });
});

您在jQuery代码中引用的是
rateYo
,而class属性包含
rateYo
,没有大写字母“Y”。

这不是唯一的问题,因为他们在使用
This
时也有问题。谢谢您的回答,David!就这样。非常感谢!仔细想想,我发现了我使用的逻辑中的错误。除了解决这个具体问题,我还学会了如何在将来处理这个问题。再次感谢!
<div id="rating-avg" class="rateyo" data-rating="<?php echo $avg_rating; ?>" data-preset="true"></div>

$(".rateyo").each(function() {
     var item = $(this);
     item.rateYo({
         rating: item.data('rating'),
         readOnly: item.data('preset')
     });
});