Ich bin mit einem seltsamen jQuery-Problem konfrontiert.Letzte Änderung in jQuery attr Rückgabetyp?
Ich wurde gebeten, herauszufinden, warum eine Website kürzlich brach. Sie laden die neueste Version von jQuery von einem CDN und nutzen es großzügig, einschließlich Features wie attr
. Ich habe sehr wenig Erfahrung mit jQuery; Ich habe gehört attr
ist kaputt, und ich habe gesehen, dass es schlecht funktioniert, also verwende ich es nie.
Wie auch immer, dieser Code hat Dinge wie foo = $(this).attr('class').split(' ')[0]
über den ganzen Ort, und all das brach kürzlich. Anscheinend attr
verwendet, um eine Zeichenfolge zurückzugeben, und jetzt gibt es ein jQuery-Objekt zurück. Es ist einfach genug, Code zu ändern und zu einem etwas vernünftigeren foo = this.className.split(' ')[0]
zu ändern, aber ich frage mich, ob ich das falsch mache.
Also meine Frage ist: Gibt es eine jQuery-Konfigurationseinstellung, um attr
zu handeln, wie es in der vorherigen Version getan hat, und einen String zurückgeben? Wenn nicht, ist jemand anderes auf dieses Problem gestoßen? Wie bist du damit umgegangen?
[ '.attr()'] (http://api.jquery.com/attr/) gibt noch eine Reihe .. –
Mmmm ... funktioniert gut für mich mit den neuesten jquery 1.7.2 hier http://jsfiddle.net/elclanrs/MRCNt/ – elclanrs
FYI, Bezug auf den ersten Klassennamen ist in der Regel eine schlechte Sache zu tun, auch so foo = this.className.split ('') [0] 'bittet um Ärger. Klassennamen haben keine garantierte Reihenfolge, wenn Code mit dem Hinzufügen und Entfernen beginnt. Mit jQuery ist 'hasClass()' der richtige Weg, um zu erkennen, ob eine bestimmte Klasse vorhanden ist. – jfriend00