从事件动态设置属性值

时间:2014-08-19 02:03:56

标签: javascript jquery

我需要设置属性的值以显示'x'数量的星星,但是需要在我的数据库中运行事件以获得平均值并使用该数字吗?

这是带有'data-rateit-value'属性id的HTML,就像动态修改一样。

<div id="randomtest" data-productid="randomtest" class="rateit" data-rateit-value=""></div>

我试过这个只是修改它没有事件来查询数据库,它没有设置它? 所以在我继续参加活动之前需要一些建议。

$('#randomtest').attr( 'data-rateit-value','4');

但是一旦我能够动态设置它就像我已经做了下面的基本演示? 如果没有,将非常感谢一些进一步的指导。

$.ajax({
    url: 'currentvalue.php',
    data: { id: productID, value: value },
    type: 'POST',

    success: setCurrentValue
});

function setCurrentValue(data) {
    $('#randomtest').attr( 'data-rateit-value'.append(data));
}

感谢您的帮助

修改 我将查询和结果更改为此,并使用整数提醒但仍未附加到属性

$.ajax({
    url: 'currentstars.php', //your server side script
    data: { id: productID, value: value }, //our data
    type: 'POST',

    success: function(results) { 
    alert(results);
    $('.rateit').attr( 'data-rateit-value'.append(results))
    }
});

我不知道这是否有助于任何人试图弄清楚它为什么不起作用?

3 个答案:

答案 0 :(得分:1)

首先我要说你应该检查一下你是否正在回复你对服务器的期望:

function setCurrentValue(data) {
    console.log(data);
    ...
}

data的结构是什么?

我不确定你想用setCurrentValue函数做什么,行$('#randomtest').attr( 'data-rateit-value'.append(data));中有一些语法错误。 可以像attr一样调用attr(attribute, value),因此$('#randomtest').attr( 'data-rateit-value', data);可能更接近您的需求

答案 1 :(得分:0)

你正试图在属性上使用.append,我认为这不是正确的方法。 试试这个 -

$.ajax({
    url: 'currentvalue.php',
    data: { id: productID, value: value },
    type: 'POST',
    success: function(){setCurrentValue(data);}
 });

function setCurrentValue(data) {
    $('#randomtest').attr( 'data-rateit-value',data);
    //Or $('#randomtest').data( 'rateit-value',data);
}

答案 2 :(得分:0)

我得到了它的工作!!

$.ajax({
    url: 'currentstars.php',
    data: { id: productID, value: value },
    type: 'POST',

    success: function(results) { 
    $('.rateit').rateit('value', (results));
    }
});

使用该查询和功能我可以在加载页面和选择评级时更新到平均评分!

多么噩梦lol:)