我正在尝试使用jquery IE占位符修复工作。它在IE9中工作正常但在IE8中我一直收到警报......
'attr(...)'为null或不是对象
这是我正在使用的代码。我做错了吗?
<!--[if lte IE 9 ]>
<script>
// IE Placeholder Fix
$(function() {
if ($('input[placeholder]').attr('placeholder').val() != '') {
var ph = $('input[placeholder]').attr('placeholder');
$('input[placeholder]').blur();
if ($('input[placeholder]').attr('value').val() == 0) {
$('input[placeholder]').attr('value', ph);
$('input[placeholder]').css('color','#999999');
};
$('input[placeholder]').click(
function() {
$(this).css('color','#000000');
if ($(this).attr('value') == ph) {
$(this).attr('value','');
}
});
}
});
</script>
<![endif]-->
更新
使用下面的评论我想出了......
<!--[if lte IE 9 ]>
<script>
// IE Placeholder Fix
$(function() {
if ($('input[placeholder]').length != 0) {
var ph = $('input[placeholder]').attr('placeholder');
$('input[placeholder]').blur();
if ($('input[placeholder]').attr('value') == '') {
$('input[placeholder]').attr('value', ph);
$('input[placeholder]').css('color','#999999');
};
$('input[placeholder]').click(
function() {
$(this).css('color','#000000');
if ($(this).attr('value') == ph) {
$(this).attr('value','');
}
});
}
});
</script>
<![endif]-->
答案 0 :(得分:1)
调用null对象上的方法或属性将导致您遇到的排序错误。如果您不确定是否定义了某个对象,请在引用任何子项之前对其进行测试。