0
<img src="one.jpg" height="200" width="200">            
<img src="three.jpg" height="200" width="200"><br>      

<a href="mylink.html"><u> Click Here  </u></a><br>      

<script src="displayAlert.js"></script>             

<style type="text/css" src="externCSS.css"> </style> 


$(document).ready(function(){
   $("[src]").error(function(){
        alert ("error");
      });
});

期待される出力 - ファイルが指定されたパスに存在しない場合、コードはアラートを表示する必要があります。

指定されたパスに画像ファイルが存在しない場合にのみ、jquery はアラートを表示します。css またはスクリプト ファイルが存在しない場合は、何も表示されません。どこが間違っていますか?

4

2 に答える 2

0

試す

$("img")
.error(function(){
$(this).hide();
})
.attr("src", "missing.png");

attrが使用するように定義されているかどうかを確認しDOMます。

var attr = $(this).attr('src');
// `attr` is false.  Check for both.
if (typeof attr !== 'undefined' && attr !== false) {
    //code goes here
}

複数のセレクターを渡す

$(window).load(function()
{
    $('script,img,link').each(function()
    {
        var attr = $(this).attr('src');
        // `attr` is false.  Check for both.
        if (typeof attr !== 'undefined' && attr !== false)
        {
            //code goes here
        }
    });
});
于 2013-02-26T08:15:12.130 に答える
0

これはjQueryで書いたものですjQueryエラー

ブラウザーがエラー イベントを発生させる前に、イベント ハンドラーをアタッチする必要があります。これが、この例でハンドラーのアタッチ後に src 属性を設定する理由です。また、ページがローカルで提供される場合、エラー イベントが正しく発生しない場合があります。error は HTTP ステータス コードに依存しており、URL が file: プロトコルを使用している場合、通常はトリガーされません。

これは、ページの読み込みが完了する前にハンドラーをアタッチする必要があることを意味します。これはあなたの問題だと思います。

これはjQueryのサンプルコードです:

$('#book')
    .error(function() {
    alert('Handler for .error() called.')
}).attr("src", "missing.png");

すぐに使用できるソリューションを探している場合は、次のことをお勧めします。

<img url="one.jpg" height="200" width="200"> 
<img url="three.jpg" height="200" width="200"><br>

<a href="mylink.html"><u> Click Here  </u></a><br>

<script url="displayAlert.js"></script>
<script src="jquery.min.js"></script>

<style type="text/css" url="externCSS.css"> </style>

<script>
   $("[url]").each ( function () {
        $(this).error (function () {
            alert ( "Error" );
        }).attr ( 'src',  $(this).attr ("url"));
    });
</script>
于 2013-02-26T08:17:03.207 に答える