2017-07-05 55 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代碼 –

相關問題