フォームのエンゲージメントを追跡するために使用しているJavaScriptのスニペットがあります。$(this)を使用して、スクリプト内の2つの関数にオブジェクトを渡しますが、Chromeが「未定義のプロパティ'length'を読み取れません。なぜ$(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>
しかし、それは私のスクリプトが探しているものではありませんか?名前がない場合は先に進めてほしい。エラーが発生せずに属性を確認するにはどうすればよいですか?