使用Ajax的Json编码的JavaScript会抛出错误消息

时间:2012-12-21 21:20:08

标签: php javascript ajax json

我有一个包含以下内容的HTML文档:

        <li id="li_273" data-pricefield="special" data-pricevalue="0" >
        <label class="description" for="element_273">Helium Foil Balloon #1 </label>
            <div>
                <input type="text" class="element text medium" id="element_273" name="element_273" size="30" value="" />
                <input type="hidden" id="element_273_price" name="element_273_price" value="">

            </div> 
       </li>

那么,那个区域是一个ajax下拉菜单。从那个ajax / php下拉,我能够执行一个onclick命令 - 这就是我所拥有的:

'onclick' => 'document.getElementById(\'li_273\').data(\'pricevalue\',\'1.00\');',  

这一切都得到json_encoded,这是它返回的部分:

"onclick":"document.getElementById('li_273').data('pricevalue','1.00');",

但是当我从ajax菜单和onclick中选择一些内容时,我收到一条错误消息:

Uncaught TypeError: Object #<HTMLLIElement> has no method 'data' 

我无法为我的生活做出这一点,我只需要更新页面上的价格即可。

更新:这是代码的其余部分,试图让它实际计算 页面上的JavaScript:

        $('#main_body li[data-pricefield="special"]').delegate('onclick','change', function(e) {
        var temp = $(this).attr("id").split('_');
        var element_id = temp[1];

        var pricedef = $(this).data('pricedef');
        if(pricedef == null){
            pricedef = 0;
        }

        $("#li_" + element_id).data("pricevalue",pricedef);
        calculate_total_payment();
           });

似乎缺少什么?因为它不会更新页面上的总数。

1 个答案:

答案 0 :(得分:3)

.data是一个jquery函数,你可能试图在dom对象上调用它。确保在页面上加载了jQuery,然后执行:

jQuery('#li_273').data('pricevalue','1.00');