我从控制台收到此消息:
attr(id)特殊检查失败通过
访问该属性的内容 attr(id),改为使用undefined。
我的代码很简单:
$(document).ready(function(){
var sezione = "";
$('.menu_bar').click(function() {
sezione = $(this).attr('id');
});
});
可能是什么问题?
修改
这是我页面中的html:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="/css/glamStyle2.css" />
<script src="http://www.modernizr.com/downloads/modernizr-latest.js"></script>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<script language="javascript" type="text/javascript" src="/js/jquery.easing.1.3.js"></script>
<!--[if IE]><script src="excanvas.js"></script><![endif]-->
<script src="/js/jquery.jsPlumb-1.3.1-all-min.js"></script>
<script language="javascript" type="text/javascript" src="/js/floating2.js"></script>
<title>Glam Group srl</title>
</head>
<body>
<div id="container">
<div id="top_bar" class="menu_bar"></div>
<div id="left_bar" class="menu_bar"></div>
<div id="right_bar" class="menu_bar"></div>
<div id="bottom_bar" class="menu_bar"></div>
</div>
</body>
</html>
我仍然不明白这个问题......
编辑2
这只发生在Firefox中的firebug控制台中。我没有Chrome控制台的这个问题。
答案 0 :(得分:1)
jQuery Lint抛出错误。它希望您使用this.id
而不是$(this).attr('id')
,因为this
已经代表具有id
属性的HTMLDivElement。
来自jQuery Lint源:
langs = {
en: {
incorrectCall: '%0(%1) called incorrectly',
specialCheckFailed: '%0(%1) special check failed',
...
notBestMethod: 'Insted of accessing the property via %0(%1), use %2 insted',
...
// check for non-ideal property/attribute access ( e.g. attr('id') - element.id is faster)
each({'attr': {'id': 'elem.id', 'value': 'jQuery.val()'}}, function(method, attributes) {
addCheck(method, 3, function() {
if (typeof arguments !== 'undefined' && typeof attributes === 'object') {
var match = false;
for (m in arguments) {
if (attributes.hasOwnProperty(arguments[m])) {
match = arguments[m];
}
}
if (match !== false) {
var args = [].splice.call(arguments,0);
return lint.langs[lint.lang].notBestMethod.replace(/%0/, method)
.replace(/%1/, args.join(', '))
.replace(/%2/, attributes.match);
}
}
});
});