2017-07-05 53 views
1
$('#addcol-inner').click(function() { 
    var sum = 0;0 
    var collection = $('#white').find('.ui-sortable-handle'); 
    collection.each(function(k,v){ 
     var class_item = $(v).attr('class'); 
     var col_class = class_item.search(''); 
     var col_number = col_class.split('-')[2]; 
     sum += col_number; 
     if(sum > 12){ 

      return false; 
    } 

我不知道什么是错的,我不会总结山坳类的数量 这是HTML遗漏的类型错误:col_class.split不是一个函数

<div id="white" class="column-container clearfix ui-sortable"> 
    <div class="column-cell ui-sortable-handle col-md-12" data-post-content-id="3801" data-active-mode="text"> 
+0

添加HTML部分too.also'0; 0'似乎不正确 –

+1

@AlivetoDie它可能是一个错字,但一个影响小。 – evolutionxbox

回答

3

search()返回匹配的整数索引,因此col_class是一个没有split()方法的整数值。

该行本身是多余的,可以在搜索空字符串时将其删除。另外col_number将是一个字符串,所以大概你需要使用parseInt()来得到sum作为一个整数。

更新

现在你已经加入你的HTML,问题是,你要访问的列数所得数组中的最后一个元素,而不是第二。因此您需要修改检索该值的逻辑。试试这个:

$('#addcol-inner').click(function() { 
 
    var sum = 0; // note that the second 0 is redundant 
 
    
 
    $('#white').find('.ui-sortable-handle').each(function() { 
 
    var class_item = $(this).prop('class').split('-'); 
 
    var col_number = class_item[class_item.length - 1]; 
 
    sum += parseInt(col_number, 10); 
 
    if (sum > 12) { 
 
     return false; 
 
    } 
 
    }) 
 

 
    console.log(sum); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="white" class="column-container clearfix ui-sortable"> 
 
    <div class="column-cell ui-sortable-handle col-md-12" data-post-content-id="3801" data-active-mode="text"></div> 
 
</div> 
 

 
<button id="addcol-inner">Click me</button>

+0

相同的问题:/ –

+0

我不明白我的代码中变量不再存在。您可以请将您的HTML添加到问题 –

+0

即时添加HTML代码 –

相关问题