Web サイトの動的コンテンツの動作に jQuery を使用しています。エラーが発生しました:
TypeError: $("#id").attr("src", thisContent.attr("data-attr")).show は関数ではありません
最初はブラウザ関連かと思いましたが、そうではありませんでした。エラーは次の行にあります。
$('#id').attr('src', thisContent.attr('data-attr')).show();
Web サイトの動的コンテンツの動作に jQuery を使用しています。エラーが発生しました:
TypeError: $("#id").attr("src", thisContent.attr("data-attr")).show は関数ではありません
最初はブラウザ関連かと思いましたが、そうではありませんでした。エラーは次の行にあります。
$('#id').attr('src', thisContent.attr('data-attr')).show();
の2番目の引数がで.attr()
ある場合undefined
、ゲッターが呼び出されます。セッターの代わりにゲッターが呼び出されたようです。
ゲッター:
$(...).attr(String) // returns String which has no method .show()
セッター:
$(...).attr(String, String) // returns jQuery object, which has method .show()
thisContent.attr('data-attr')
undefined
場合によっては戻る可能性があるため、目的のsetterメソッドの代わりにgetterが呼び出されます。
ランダムな質問ですが、確かに...
CDNを介してjQueryにアクセスしていますか?
もしそうなら、両方のマシンがjQueryコードを正常にロードしますか?どちらも問題なくCDNを見ることができます(どちらもインターネットに接続されています)?およびjQueryコードの他のビットは機能していますか?
ブラウザーは非常に確立された言語であるため、JSのレンダリング/処理方法に違いがあることは非常にまれです。ですから、私の提案は、ブラウザベースの問題ではなく、コードの外にあるものです。
ただのアイデア..
以下を試してください。
data-attr の名前を別の名前に変更します。
thisContect.attr 内に data-attr が存在するかどうかを確認します。
次の行をログに記録し、コンソールに移動します。そこに data-attr が存在しないか、間違った場所にあることがわかります。
console.log(thisContent);