jQuery获取元素属性值为undefined
在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()
方法来检查元素是否有特定的属性。
评论已关闭