jQuery获取元素属性值为undefined
warning:
这篇文章距离上次修改已过451天,其中的内容可能已经有所变动。
在jQuery中,如果你尝试获取一个元素的属性,而这个属性并不存在于该元素上,jQuery会返回undefined。这是因为属性或数据属性不存在时,jQuery的.attr()方法会返回undefined。
例如,如果你尝试获取一个不存在的data-*属性,或者获取一个不存在的HTML属性,比如myattr,你都会得到undefined。
$(document).ready(function(){
var value = $('#myelement').attr('data-myattr'); // value 将会是 undefined
console.log(value);
});如果你想要避免这个问题,可以使用.data()方法来获取data-*属性,它会返回undefined而不是抛出错误:
$(document).ready(function(){
var value = $('#myelement').data('myattr'); // value 将会是 undefined
console.log(value);
});如果你确实需要检查一个属性是否存在,你可以先使用.attr()方法获取属性值,然后检查它是否是undefined:
$(document).ready(function(){
var value = $('#myelement').attr('data-myattr');
if (typeof value !== 'undefined') {
// 属性存在
} else {
// 属性不存在
}
});或者使用.is()方法来检查元素是否有特定的属性:
$(document).ready(function(){
if ($('#myelement').is('[data-myattr]')) {
// 属性存在
} else {
// 属性不存在
}
});总结:
- 使用
.attr()获取HTML属性时,如果属性不存在,则返回undefined。 - 使用
.data()获取data-*属性时,如果属性不存在,则返回undefined。 - 使用
typeof来检查变量是否是undefined。 - 使用
.is()方法来检查元素是否有特定的属性。
评论已关闭