我有一段 javascript 用于跟踪表单参与度。我使用 $(this) 将对象传递给脚本中的两个函数,但我接下来的几行代码没有执行,因为 Chrome 说“无法读取未定义的属性‘长度’。为什么我不能使用 $(this ) 参考了?
$('select').blur(function () {
var input_category = get_input_category($(this));
var form_identifier = get_form_identifier($(this));
if($(this).attr('name').length) {
// This is where I get the error ^^
var object_identifier = $(this).attr('name');
}
else if($(this).attr('id').length) {
var object_identifier = $(this).attr('id');
}
else if($(this).attr('class').length) {
var object_identifier = $(this).attr('class');
}
else {
var object_identifier = null;
}
});
编辑:选择框没有附加名称值。
<select type="select">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
但这不是我的脚本要寻找的吗?如果它没有名字,我希望它继续前进。如何在不出错的情况下检查属性?