1

次のように要素を作成しました。

  var imageElement =  new Element('img', {
                    'src': item.Url,
                    'alt': item.Id,
                    'height': height + 'px',
                    'width': width + 'px', 
                    'styles': {
                        'padding-left': paddingLeft + 'px',
                        'padding-top': paddingTop + 'px'
                    }
                });

ブレークポイントを配置してデバッガーを起動し、何imageElement.get('html')が返されるかを確認すると、空の文字列になります。

これはなぜでしょうか?それが innerHTML を取得する方法ではないでしょうか。

編集:ああ、どうすればそのHTMLを取得できますか?

4

4 に答える 4

4

オブジェクト経由でアクセスできるのに、IMG の HTML が必要な理由はわかりませんが、次のようになります。

HTML:

<div id="image-wrap"></div>

ムーツール:

var imageElement =  new Element('img', {
   'src': item.Url,
   'alt': item.Id,
   'height': height,
   'width': width, 
   'styles': {
       'padding-left': paddingLeft + 'px',
       'padding-top': paddingTop + 'px'
   }
}).inject($('image-wrap'));

console.log(imageElement.getParent().get('html'));

ラッピング要素をオンザフライで作成し、その内容をフェッチすることもできます。

于 2010-01-06T09:56:18.357 に答える
1

innerHTML名前が示すように、要素の HTMLです。その内容。<img>は定義上空の要素であるため、コンテンツはありません。

IE では、outerHTML. クロスブラウザーには適していませんが、デバッグには役立ちます。それ以外の場合は、たとえばに制限されます。画像を空の div に追加し、div の を取得しinnerHTMLます。

                'height': height + 'px',
                'width': width + 'px', 

CSS とは異なり、HTML の幅/高さの単位はありません。これらのプロパティは単純な整数です。

于 2010-01-06T02:38:55.547 に答える
1

画像要素はシングルトン タグです。内部 HTMLはありません

于 2010-01-06T02:24:54.707 に答える
0

これは回答済みの古い質問であることは知っていますが、検索結果からこれを見ている人のために、実際にドキュメント ツリーに追加される前、および MooTools が「挿入」される前に、どの要素にも innerHTML がないことを追加できると思いました。そして本当の答えは明らかに、上記のように画像タグには innerHTML がないということです。

于 2011-01-30T00:35:45.733 に答える