TypeError:$(...)。attr(...)未定义

时间:2014-03-01 05:14:14

标签: javascript jquery

$('.weight').live('input',function() {
        var t = $(this).attr('id').replace('weight-',''); 

        var table_name = $('#table_name-'+t+' option:selected').val();

        var quality_color_value = parseFloat($('#quality-color-'+t+' option:selected').attr('data-id').split('\`')[0]);

        var diamond_weight = parseFloat($('#quality-color-'+t+' option:selected').attr('data-id').split('\`')[1]);

        var diamond_pcs = parseFloat($('#diamond-pcs-'+t).val()); 

        if(table_name == 1){ 
           var diamond_weight = parseFloat($('#weight-'+t).val()); 
        }

        if(table_name == 2){
            $('#weight-'+t).val(diamond_weight);
        } 

    });        

1 个答案:

答案 0 :(得分:0)

从发布的重复链接引用:

  

http://api.jquery.com/attr/

     
    

从jQuery 1.6开始,.attr()方法为尚未设置的属性返回undefined。

  
     

我的猜测是你要搜索的属性未设置在   你正在寻找它的元素。因此,.replace失败了   因为undefined没有替换方法。你需要做   确定它没有先定义。

var current = $(this).attr('rel');
current = current ? current.replace('aboutitemremove_', '') : "";
     

也为下一个区域的id做这个。

How do I stop receiving: TypeError: $(...).attr(...) is undefined?