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 回答