2011-07-24 19 views
1

joomla 1.5.18に問題があります。 「取得」オブジェクト#<HTMLDivElement>は、方法はありません;:私はインスタンス.get mootoolsメソッドがjoomla 1.5で動作しない

var divContent = $$('#myDiv').get('text'); 

のために使用して要素からテキストを取得しようとしているが、私はクロームで、エラーが出るたび:キャッチされない例外TypeErrorは、 in firefox:divContent.getは関数ではありません。なぜこのエラーが発生していますか?

答えて

0

joomla 1.5.18にはどのバージョンのmootoolsが入っているのか分かりませんが1.2.5かもしれません。その場合は、.getは動作するはずですが、期待通りには動作しません。

おそらく$("#myid")に使用jqueryのユーザー、であり、MooToolsの中でそこに#と同様の結果を得るための唯一の方法は別名document.getElements$$経由であることがわかります。

問題はmootoolsのidで1つの項目を取得するには、実際にはdocument.id("mydiv")または$("mydiv")となります。 $$("#mydiv")は、実際には単一のメンバーを持つ要素のコレクションを返します。つまり、[obj]なので、実際の要素は$$("#mydiv")[0]です。

コレクションに.getメソッドを適用すると、ゲッターは通常、すべてのメンバーを通して.eachを繰り返し実行し、getを個別に実行します。コレクションの各メンバー(つまり["innertext"];)に新しい配列メンバーが返されますが、コレクションのメソッドがあるはずですが、要素がそこにあることを確認してください。/onloadであり、一意のIDです。

まだ、私は$("mydiv").get("text")を使用するようにスワップしますが、それはうまくいくはずです。これは私の経験上、マニュアルを読んでいないjqueryユーザーのすべてのあまりにも一般的な仮定です。これは、mootoolsが自動的にコレクションを処理するために行うすべての.eachの反復処理のために、悪いコードと実行できないコードになります。ただ言って。

1

mootoolsのサンプルにも同じことがあります。

私はコレクション内のオブジェクトごとにそれを行う方法を知っています。私は$$( '。')を使い、 "each"メソッドを使用しています:

$$('p.classname').each(function (el){ 
     el.addEvent('click', function() { 
      var txt = el.get('text'); 
      ... 
     }); 
}); 

そして私は明らかにdomreadyに関数を追加します。私はjqueryの原因mootoolsを使用していません& jqueryはイベントをそれぞれ停止します... -iは一度だけ試しました&私が必要としていたことはうまくいかず、mootoolsを含むすべてのjoomlaリソースを使いたいと思っています。 mootools.jsでバージョンを確認する

それは1.13を言う(?)

0

また、(とすべきである)最新版(セキュリティ上の修正、など)にあなたのJoomlaのをアップグレードすることができますし、私はそれがバージョン1.5程度であったと考えています。 20彼らはすぐに新しいバージョンのmootoolsを含んでいます(mootoolsのアップグレード用のプラグインもあります)。私は1.5.20から含まれているバージョンは1.2.5か何かのようだと信じています...

それは助けるかもしれません!

関連する問題