2017-03-13 1 views
0

Mein Code ist wie folgt:

$(document).ready(function() { 
    size_li = $("#myList li").length(); 
    x=3; 
    $('#myList li:lt('+x+')').show(); 
    $('#loadMore').click(function() { 
     x= (x+5 <= size_li) ? x+5 : size_li; 
     $('#myList li:lt('+x+')').show(); 
    }); 
    $('#showLess').click(function() { 
     x=(x-5<0) ? 3 : x-5; 
     $('#myList li').not(':lt('+x+')').hide(); 
    }); 
}); 

Oder hier Demo und vollständigen Code sehen: http://jsfiddle.net/oscar11/6FzSb/4177/

ich jQuery 3.0.1

Wenn er ausgeführt wird, gibt es Fehler:

Typeerror : $ (...). Länge ist keine Funktion

Wie kann ich es lösen?

+3

'length' ist ein Wert keine Funktion es wie folgt verwenden : '$ (...). Länge'! –

+2

Bitte überprüfen Sie einige Unterlagen, bevor Sie fragen. – JustARandomProgrammer

+0

Google einfach Ihren eigenen Fragetitel. – Xufox

Antwort

11

Anstelle dieser

$("#myList li").length(); 

Verwenden dieser:

$("#myList li").length; 

Die $("#myList li") gibt ein Array artiges Objekt. Alle arrayähnlichen Objekte haben eine Eigenschaft mit dem Namen length, die, wenn sie gelesen wird, die Anzahl der Elemente zurückgibt, die in dem arrayähnlichen Objekt enthalten sind. Davon abgesehen gibt es keine Funktion namens length. Daher ist length() bedeutungslos.

+1

'$ (...)' gibt ein Array-ähnliches Objekt zurück, kein Array. –

+0

@ibrahimmahrir korrigieren ... meine schlechte ... – Christos

+0

@ibrahimmahrir sind nicht Arrays Objekt in Javascript? – JustARandomProgrammer

1

length ist eine Eigenschaft, keine Funktion, so entfernen Sie die ()

$("#myList li").length; 
+0

_ist eine Eigenschaft _ ??? Funktionen könnten auch Eigenschaften sein! –

+0

@ibrahimmahrir "* Die Array-Länge * *** Eigenschaft ***", Quelle: https://developer.mozilla.org/nl/docs/Web/JavaScript/Reference/Global_Objects/Array/length – LinkinTED

+1

tat ich nicht sagen 'Länge' ist keine Eigenschaft.Ich sagte "Länge" ist eine Eigenschaft und Objekt könnte Funktionen als Eigenschaft haben, die den Satz machen: _ 'length' ist eine Eigenschaft, keine Funktion_ bedeutungslos! –

-1

Ich habe deine Geige aktualisiert es sagt, es ist keine Funktion, weil es wirklich nicht ist. Länge in JavaScript-Arrays ist Eigenschaft, so dass Sie es wie

array.length 

seit dom Selektor kehrt Array von DOM-Elementen nennen sollten Sie auch Länge ohne Klammern verwenden sollten