2017-07-05 3 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; 
    } 

ist, ich weiß nicht, was falsch ist, ich werde nicht die Anzahl der col Klasse zusammenzufassen dies HTMLUncaught Typeerror: col_class.split keine Funktion

<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 Teil too.Also '0 hinzufügen; 0 'falsche –

+1

scheint @AlivetoDie es ist wahrscheinlich ein Tippfehler, obwohl man die wenig beeinflusst. – evolutionxbox

Antwort

3

search() liefert den ganzzahligen Index des Spiels Daher ist col_class ein Ganzzahlwert, der keine split()-Methode hat.

Diese Zeile selbst ist redundant und kann entfernt werden, wenn Sie nach einer leeren Zeichenfolge suchen. Auch col_number wird eine Zeichenfolge sein, also müssen Sie vermutlich parseInt() verwenden, um die sum als eine ganze Zahl zu erhalten.

aktualisieren

Jetzt, wo Sie Ihre HTML hinzugefügt haben, ist das Problem, dass die Spalte Nummer, die Sie zugreifen möchten, in dem sich ergebenden Array das letzte Element ist, nicht das zweite. Daher müssen Sie die Logik ändern, die diesen Wert abruft. Versuchen Sie folgendes:

$('#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

das gleiche Problem:/ –

+0

Ich sehe nicht, wie gegeben, dass die Variable nicht mehr in meinem Code existiert. Könnten Sie bitte Ihren HTML-Code zu der Frage hinzufügen –

+0

HTML-Code hinzufügen –

Verwandte Themen