5

エラーが発生する同じコードを使用して、いくつかのhtml要素内でループする必要があります

jquery Uncaught TypeError: Object # has no method 'height'

ここで何が問題なのですか?

clamp: function() {
  var elms = $('#wrapper .content ul li .title');
  elms.each(function(i) {
    debugger
    var elm = this;
    var h = elm.height();
    var eO = elm.outerHeight();
    if (eO > h) {
      elm.text(function(index, text) {
        return text.replace(/\W*\s(\S)*$/, '...');
      });
    }
  })
4

2 に答える 2

9

each()メソッドでは、jQuery オブジェクトではなく DOM 要素を参照しますthis(したがって、jQuery メソッドを呼び出すことはできません)。それ以外の

elm = this

試す

elm = $(this)
于 2013-10-02T09:57:41.953 に答える
2

thisDOM 要素 ( ) を jQuery オブジェクトにラップする必要があります。

var elm = $(this);

関数のドキュメントを.each()参照してください:

さらに重要なことに、コールバックは現在の DOM 要素のコンテキストで起動されるため、キーワード this は要素を参照します。

于 2013-10-02T09:57:42.767 に答える