1

私はウェブサイトを開発しており、Chrome、Safari、Firefox (Windows と Mac の両方) ですべてが完全に機能する素晴らしい段階の 1 つにあり、IE の修正にさらに 24 時間を費やす必要があります。

私は長い間それに取り組んできましたが、最後に起こっているのは、変数が常に IE7 で「未定義」であることです。

と呼ばれるhtml5データ属性から来ていますdata-title

私は周りを見回し、これこのスタックオーバーフローの両方の質問で提供されている解決策も試しました。

したがって、私は試しました

$(this).attr('data-title');

$(this).data('title');

そして最後の解決策について

var newTitle = $(this).getAttribute("data-title");

エラーが発生します:

キャッチされていない TypeError: オブジェクト [オブジェクト オブジェクト] にメソッド 'getAttribute' がありません

問題は、要素がjQuery Maximageによって生成されるため、getElementByIdで変数をロードできないことです

生成された要素は次のようになります。

<div class="mc-image collection-image" title="" style="background-image: url(http://www.server.com/image.jpg); position: absolute; top: 0px; left: 0px; z-index: 12; opacity: 1; display: block; width: 1292px; height: 670px; " data-title="The&nbsp;Title" data-href="#collection-description-172"></div>

data-titlemaximage/jQueryサイクルが画像を変更するときに、属性を使用して横の別のdivにテキストを設定しています。

私は完全に途方に暮れています。

4

2 に答える 2

1

キャッチされていない TypeError: オブジェクト [オブジェクト オブジェクト] にメソッド 'getAttribute' がありません

$(this)は jQuery オブジェクトでありgetAttribute()、DOM 要素を想定しているためです。だけで試してくださいthis

于 2012-05-24T05:16:23.253 に答える
0

データプロパティをボタンに設定し、JQueryで取得するという同様の問題がありました。「Uncaught TypeError: Object [object Object] has no method 'getAttribute'」というメッセージが表示され続けました

私はこれを次の方法で解決します。

http://www.rqna.net/qna/kvtryn-jquery-ie7-variable-is-undefined-works-in-chrome-safari-firefox.html

持っているとき:

<input type="button" class="btn" data-passengerMode="@item.PassengerMode"/>

これは私のために働く:

$('#btn_0').get(0).getAttribute('data-passengerMode')

またはこれ

$('#btn_0')[0].getAttribute('data-passengerMode')

すべては、html アプローチを使用したくなかったためです。

document.getElementById('btn_0')

動的ローディングを試すことができれば、それが役立つことを願っています。

于 2013-09-17T10:54:30.730 に答える