如何使用getAttribute或SetAttribute获取

时间:2014-04-23 08:04:17

标签: javascript jquery

init: function(element, options) {
    this.$generic = element.find('.love');
    this.type     = this.$generic.data('type');
    this.url      = this.$generic.attr('href');
    this.$count   = this.$generic.setAttribute('data-love-count');
    console.log(this.$count + ' 6');
    //this.count = +this.$count.text();
},
<a data-love-count="${loveCount}" href="/love/${session.userId}">
    <i class="icn-heart"></i>
    ${loved}
</a>

console.log不断出错; Uncaught TypeError: undefined is not a function。我不知道为什么。我尝试使用getAttributesetAttribute,但我得到了相同的错误。

此外,我无法想象如何在评论行中添加爱情。每次用户点击,爱情都会增加。

2 个答案:

答案 0 :(得分:0)

this.$count = this.$generic.setAttribute('data-love-count');

您在那里使用html属性setter,以get数据。用以下代码替换该行:

this.$count = this.$generic.attr('data-love-count');

你应该没事。

答案 1 :(得分:0)

setAttributegetAttribute是本机函数,但您的$generic变量是jQuery对象。

jQuery使用.attr代替:https://api.jquery.com/attr/

如果您希望代码正常工作,您可以这样做:

this.$count = +this.$generic[0].getAttribute('data-love-count');

(请注意,它未设置,+将其转换为数字类型)

get 0将访问jQuery选择器找到的第一个本机元素,然后您可以调用本机方法。

增加:

this.$count += 6;