使用 $(this) 的属性
Using attributes of $(this)
老实说,我不知道我的问题是否与我正在使用的插件相关的jQuery有关。
我使用插件 RateYo (http://prrashi.github.io/rateYo/) 在我们的网站上显示星星。需要显示的星星数在div 的属性中给出:
<div id="rating-avg" class="rateyo" rating="<?php echo $avg_rating; ?>" preset="true"></div>
然后,我通过调用 home.js 来调用插件 RateYo,其中包含:
jQuery.noConflict()(function($){
$(document).ready(function() {
$(".rateYo").rateYo({
rating: $(this).attr('rating'),
readOnly: $(this).attr('preset')
});
});
});
不幸的是,这不起作用。该插件确实启动并创建了星星,但没有使用变量 $(this).attr('rating') 和 $(this).attr('preset')。不显示评级,而是显示空星。
当我使用以下代码时,评级完美显示:
$("#rating-avg").rateYo({
rating: $("#rating-avg").attr("rating"),
readOnly: $("#rating-avg").attr("preset")
});
不幸的是,我需要插件按类而不是 id 启动。我们在网站上有可变数量的评级,因此无法按 ID 选择它们。
有人看到我做错了什么吗?
您的this
值将不正确,并且您的类名使用了错误的大写字母。 您可能可以使其像这样工作:
$(".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属性包含没有大写字母"Y"的rateyo
。
相关文章:
- javascript中对象构造函数中的var属性与this.properties
- 如何使用(this)访问Angular 2 http rxjs catch函数中的对象属性
- 为什么我可以'不要使用xx[this.index].style.display?它's说“;无法读取属性
- ember.js计算属性中this的值是如何定义的
- $(this) 在 onclick 属性中不起作用
- jQuery插件返回this.each并为每个对象添加函数属性
- 使用 $(this) 的属性
- 通过函数传递“this”时,我是否可以无法访问“this”的属性
- Jquery $this属性选择器是否包含单词
- Javascript对象,其属性是有关“this”的函数详细信息
- 为什么您可以在不引用“this”的情况下操作对象属性
- jQuery - 如何在 jquery 中访问 “this.options” dataSousrce 属性
- 如何使用“self = this”访问类属性
- JavaScript 中对象的属性使用 this 和不使用 this
- 在 Javascript 中,在执行深度复制时,由于属性为“this”,我如何避免循环
- 在 JavaScript/TypeScript 中动态地“直接”添加对象属性到“this”
- 使对象属性在“this”范围内可用
- 如何通过“this”获取类名?以及如何获取我定义的属性
- 对象中的函数和对“this”属性的访问 - 失败
- 在 React.js 中将 this.refs 作为 jsx 中的属性传递